LINK_DIRECTORIES和rpath-link的区别
在CMakeList.txt
中,LINK_DIRECTORIES和rpath-link都是用来指定链接库路径的,但是有区别,看来具体例子
1 | # 设置库路径 |
在注释(1)处的目录下面有libama.so
库和其依赖的若干.so
如果只加注释(1)处的路径而不加注释(2)处的-rpath-link
参数,则会报错找不到通过ama间接依赖的一系列.so的问题,
如果只加注释(2)处的-rpath-link
参数而不加注释(1)处的路径,则会报错找不到ama库本身的问题。
解决方案是要么两处都加上,要么只加(1)处的路径,但是需要在TARGET_LINK_LIBRARIES
中写出所有通过ama间接依赖到的库名字,这样就都会通过(1)处的路径找到它们并使它们参与到链接中。
总之,直接链接的库只会通过(1)处指定的路径查找,而间接链接到的库只会通过(2)处指定的路径进行查找。