cc编译器无法找到指定路径中的TensorFlow链接库,如何修复?
修复TensorFlow C++库链接错误的方法
问题原因
链接器通过-ltensorflow_cc查找库时,会默认寻找无版本号的libtensorflow_cc.so软链接,但你的目录下只有带版本号的libtensorflow_cc.so.2,导致链接器无法匹配到目标库。
解决方案
方案1:创建软链接
在TensorFlow库目录下创建指向版本库的软链接,让链接器能找到匹配的库文件:
cd /home/wade/.local/lib/python3.10/site-packages/tensorflow ln -s libtensorflow_cc.so.2 libtensorflow_cc.so
执行完后重新运行make即可。
方案2:修改Makefile直接指定库文件
调整Makefile的链接规则,跳过-l参数,直接指定完整的库文件路径:
TF_PATH=/home/wade/.local/lib/python3.10/site-packages/tensorflow CFLAGS=-I$(TF_PATH)/include/ CC=cc artifaction : artifaction.o $(CC) -o artifaction artifaction.o $(CFLAGS) $(TF_PATH)/libtensorflow_cc.so.2 artifaction.o : $(CC) -c artifaction.cc $(CFLAGS)
这种方式让链接器直接使用指定的版本库,无需依赖软链接。
补充检查项
- 确认
libtensorflow_cc.so.2的读取权限:执行ls -l $(TF_PATH)/libtensorflow_cc.so.2查看权限,若权限不足,用chmod +r $(TF_PATH)/libtensorflow_cc.so.2调整。 - 若使用g++/clang编译,建议将
CC改为g++或clang++——TensorFlow C库需要C编译器完成链接,避免因编译器类型不匹配出现额外问题。
内容的提问来源于stack exchange,提问作者Rylan Yancey
相关产品推荐
相关产品推荐

