cmake TARGET_LINK_LIBRARIES后找不到so的问题
cmake TARGET_LINK_LIBRARIES后找不到so的问题
问题描述
在读《CMake实践》时,在自己虚拟机里练习第六章《如何使用外部共享库和头文件》,按照书中所述,做完所有的操作后,执行程序时,一直报找不到libhello.so的错。
解决方法
- 先尝试用LINK_DIRECTORIES 指令将/usr/lib添加到共享库搜索路径,无果
- 检查一下用户环境变量LD_LIBRARY_PATH, 为空,将/usr/lib加到环境变量中,仍然无果
- 最后查到/etc/ld.so.conf这个文件,此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。将/usr/lib加入到文件/etc/ld.so.conf中,执行ldconfig命令,刷新库文件缓存。
此时,重新
cd build
cmake …
make
ldd src/main
就可以看到动态库libhello.so链接成功了。
本文解决了使用CMake编译时遇到的找不到libhello.so的问题。通过修改/etc/ld.so.conf并运行ldconfig命令更新共享库缓存,最终使动态库成功链接。
70

被折叠的 条评论
为什么被折叠?



