我用BrainScript训练了我的模型,现在想在C ++项目中使用它。从EvalMultithreads.cpp我复制了所有相关功能。我链接了CNTK.Core和CNTK.Math库,并按照here所述设置搜索路径。当然我加入了CNTKLibrary.h。 当我构建项目时,编译器给出了这个错误:
未定义引用`CNTK :: Variable :: Name [abi:cxx11]()const'
它引用了这一行:
if (it->Name().compare(varName) == 0)
EvalMultithreads.cpp函数的bool GetVariableByName,还有:
未定义引用`CNTK :: Function :: LoadModel(std :: __ cxx11 :: basic_string CMakeFiles / xxx.dir / build.make:1848:目标配方' /home/path/xxx.exe 39;失败了 CMakeFiles / Makefile2:67:目标的配方' CMakeFiles / xxx.dir / all'失败 Makefile:83:目标配方'全部'失败
有没有人有同样的麻烦?
仅供参考:我使用Ubuntu 16.04
,gcc
版本5.4.0
,CNTK ver2.0rc2 GPU和1位SGD
答案 0 :(得分:1)
CNTK.Core和二进制发布包中的其他库是使用GCC 4.8编译的,因此无法使用gcc 5.4.0直接与应用程序链接。请使用与创建库相同的构建风格(Debug / Release)和the same compiler version,如here所述。 如果要使用gcc 5.4.0,则需要从源代码构建库。