2016-04-26 122 views
0

我试图用Halide创建简单的程序。使用第一个教程复制粘贴几行代码。然后得到一些问题在Halide表达式:_pFirstBlock == pHead在简单程序中崩溃

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 \来源\ HDRView \ 64 \调试\ test.exe的 文件:F:\ DD \ vctools \ CRT \ crtw32 \杂项\ 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是有罪的。在项目属性中的changig Platform Toolset到Visual Studio 2013之后,一切正常......谢谢大家的帮助。

回答

0

该问题很可能是由于用于编译程序的C++运行时库与用于编译Halide库的C++运行时库之间不匹配造成的。尝试将项目设置中的C++运行时库设置更改为'DLL'版本。

+0

我试着改变项目 - > c/C++ - >代码生成 - >运行时库到我的项目中的所有4个posibilities,但它们都崩溃了 –