首页 文章

在Caffe for Windows的调试模式下pycaffe中的Lnk2019错误

提问于
浏览
3

我正在使用BVLC Caffe on the Windows branch,目前不支持 .

当我尝试在Visual Studio 2013上以调试模式编译pycaffe时,我得到了错误

_caffe.obj : error LNK2019: unresolved external symbol __imp__Py_NegativeRefcount referenced in function _import_array
_caffe.obj : error LNK2019: unresolved external symbol __imp__Py_Dealloc referenced in function _import_array
_caffe.obj : error LNK2001: unresolved external symbol __imp__Py_RefTotal

但是,pycaffe在Release模式下编译很好 . 我正在使用Python 2.7.12 :: Anaconda 4.1.1(64位),我在libs目录中添加了python27_d.lib .

这不是另一个问题的重复,因为:

1 回答

  • 7

    将pyconfig.h从python目录复制到pycaffe源代码所在的位置 .

    找到以下行:

    #ifdef _DEBUG
    #   define Py_DEBUG
    #endif
    

    并编辑它,使它看起来像这样:

    #ifdef _DEBUG
    //# define Py_DEBUG
    #endif
    

    基本上,不要定义Py_DEBUG . 或者,您可以直接修改pyconfig.h文件而无需先复制它 .

    问题出现是因为python在调试模式下编译了额外的代码,这在发布模式中找不到,因此如果编译正确,则lib和dll应该不相同 .

相关问题