find .so file

find .so file after installing

关于rpath

rpath就是在运行的的时候告诉os要从哪里来找.so文件的路径(这个认为是由linker来负责的),这个对于找.so文件的顺序解释的比较清楚。

比较万能的做法就是设置LD_LIBRARY_PATH,但是这种方法不是很好的一种。具体可以参考blog中linux分类下的crutial env 那一篇。

在使用cmake的时候,特别是install时候,cmake默认的操作是clear the rpath,这个时候常遇到的问题就是在install的目录下,binary file找不到.so文件。具体的解决方法可以参考这里,简单的操作就是使用这个命令

set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")

显式地把Rpath传递进去。

reference

about the rpath
https://www.cnblogs.com/rickyk/p/3875084.html

cmake rpath
https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/RPATH-handling

for default settings. the rpath will be cleared for installing

https://cliutils.gitlab.io/modern-cmake/chapters/install/exporting.html

There are three ways to access a project from another project: subdirectory, exported build directories, and installing. 

推荐文章