我用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的配方'失败的CMakeFiles / Makefile2: 67:目标'CMakeFiles / xxx.dir / all'的配方失败Makefile:83:目标'all'的配方失败
有没有人有同样的麻烦?
仅供参考:我正在使用 Ubuntu 16.04
, gcc
版本 5.4.0
,CNTK ver2.0rc2 GPU和1位SGD
1 回答
二进制发行包中的CNTK.Core和其他库是使用GCC 4.8编译的,因此无法使用gcc 5.4.0直接与应用程序链接 . 请使用与创建库相同的构建风格(Debug / Release)和the same compiler version,如here所述 . 如果要使用gcc 5.4.0,则需要从源代码构建库 .