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链接成功了。