TensorFlow_gpu_1_15_0 C++编译出现undefined reference错误如何解决
所有报错均为C链接阶段的未定义符号错误,核心原因是编译时未正确关联TensorFlow C相关依赖,可按以下思路排查:
- 补充TensorFlow库链接配置
Python环境下的TensorFlow头文件可被识别,但C++编译默认不会自动链接对应的依赖库,需要手动将tensorflow_cc.lib、tensorflow_framework.lib两个核心导入库加入项目的链接依赖列表,GPU版本还需额外确认链接的是带CUDA支持的对应版本库,而非CPU版本库。 - 统一编译目标架构
你安装的TensorFlow_gpu_1_15_0对应Python3.7版本均为64位架构,若你当前C++编译目标设置为x86(32位),会出现架构不匹配导致的符号找不到问题,将编译目标调整为x64后重新编译即可。 - 补充正确的预处理器宏定义
Windows环境下调用TensorFlow动态库的C++接口时,必须在项目预处理器定义中添加TENSORFLOW_CC_SHARED宏,否则头文件不会正确识别动态库导入符号,就会出现你报错中__imp__开头的符号缺失问题。 - 确保头文件与库版本完全匹配
你当前使用的是Python site-packages路径下的TensorFlow 1.15头文件,链接的TensorFlow C库必须是同版本、同GPU编译配置的版本,若使用其他版本或CPU版的TensorFlow C库,就会出现大量符号不匹配的报错。
内容的提问来源于stack exchange,提问作者shayan Hojati
相关产品推荐
相关产品推荐

