Я пытался создать простую программу, используя Halide. Использовать первый урок копирования, вставить несколько строк кода. Тогда возникли проблемы в
e = x + y;
линия;
#include "stdafx.h"#include "Halide.h"
int main()
{
Halide::Func gradient;
Halide::Var x, y;
Halide::Expr e;
e = x + y;
return 0;
Ошибка:
Ошибка отладки!
Программа: D: \ SVN \ Inzynierka \ Source \ HDRView \ x64 \ Debug \ test.exe
Файл: f: \ dd \ vctools \ crt \ crtw32 \ misc \ dbgheap.c
Линия: 1424
Выражение: _pFirstBlock == pHead
Стек вызовов:
> msvcr120d.dll!_free_dbg_nolock(void * pUserData, int nBlockUse) Line 1424 C++
msvcr120d.dll!_free_dbg(void * pUserData, int nBlockUse) Line 1265 C++
msvcr120d.dll!operator delete(void * pUserData) Line 54 C++
Halide.dll!00007ffe3bfc2232() Unknown
Halide.dll!00007ffe3bfb7a8d() Unknown
Halide.dll!00007ffe3bfaae28() Unknown
Halide.dll!00007ffe3bfabe97() Unknown
Halide.dll!00007ffe3c29ea9a() Unknown
test.exe!Halide::Internal::Variable::make(Halide::Type type, std::basic_string<char,std::char_traits<char>,std::allocator<char> > name) Line 3738 C++
test.exe!Halide::Var::operator Halide::Expr() Line 6269 C++
test.exe!main() Line 12 C++
[External Code]
Редактировать:
Я нашел решение своей проблемы. Visual Studio 2015 была виновата. После изменения набора инструментов платформы в свойствах проекта на Visual Studio 2013 все работает нормально … Спасибо всем за помощь.
Вероятно, проблема связана с несоответствием между библиотекой времени выполнения C ++, используемой для компиляции вашей программы, и библиотекой Halide. Попробуйте изменить настройку библиотеки времени выполнения C ++ в настройках вашего проекта на версию «DLL».
Других решений пока нет …