macOS下g++链接同目录libtensorflow_framework库时提示找不到文件
问题解决:macOS下链接TensorFlow框架库失败
核心原因
macOS系统的动态库后缀是.dylib,你使用的libtensorflow_framework.so.2.15.0是Linux平台的动态库格式,macOS的链接器ld无法识别该格式,因此提示找不到库。另外,链接器的-l参数有固定规则:指定库名时需要去掉前缀lib和后缀部分(比如.so.x.x.x或.dylib),直接用核心库名即可。
解决步骤
替换为macOS版本的TensorFlow库
下载对应2.15.0版本的macOS版TensorFlow库,正常情况下会得到libtensorflow_framework.dylib(或带版本号的libtensorflow_framework.2.15.0.dylib)这类符合macOS格式的文件。修正链接命令
若拿到的库文件是libtensorflow_framework.dylib,正确链接命令为:g++ -o hello -I. -L. -ltensorflow_framework hello.cpp若库文件是带版本号的
libtensorflow_framework.2.15.0.dylib,需先创建软链接让链接器识别:ln -s libtensorflow_framework.2.15.0.dylib libtensorflow_framework.dylib再执行上面的链接命令即可。
运行时库路径配置(可选)
程序编译成功后,运行时可能提示找不到动态库,可通过以下方式解决:- 临时设置环境变量:
export DYLD_LIBRARY_PATH=.:$DYLD_LIBRARY_PATH ./hello - 编译时直接指定运行时路径:
g++ -o hello -I. -L. -ltensorflow_framework -Wl,-rpath,. hello.cpp
- 临时设置环境变量:
内容的提问来源于stack exchange,提问作者rudicangiotti
相关产品推荐
相关产品推荐

