常用的INSTALL配置
1 | install(TARGETS node |
最终的可执行文件的路径在install/lib/node
另一种情况,test_node
是可执行文件,test
是动态库,target_link_libraries
只是保证了devel/lib/test_node
中的可执行文件链接了test
,但不保证install/lib/test_node
中链接了test
,需要如下配置1
2
3
4
5
6install(
TARGETS test test_node
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
注意,如果修改了test
对应的源文件, 需要把编译后的libtest.so
也更新到远程机,否则test_node
没有变化
CMAKE_INSTALL_PREFIX
CMAKE_INSTALL_PREFIX
变量类似于configure脚本的–prefix
,常见的使用方法是在build文件夹里执行cmake -DCMAKE_INSTALL_PREFIX=/usr ..
INSTALL指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及
文件、目录、脚本等。
检查CMakelist文件发现路径是include_directories("/usr/include/eigen3")
检查eigen3的路径,发现我的是/usr/local/include/eigen3/Eigen
,可以链接对应的文件,即进行以下命令:1
sudo ln -s /usr/local/include/eigen3/Eigen /usr/include/Eigen
sudo ln -s 源文件 目标文件
是一个常用的linux命令,功能是为源文件在目标文件的位置建立一个同步的链接,当二者建立联系后即可在源文件中访问目标文件。
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link). 建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。默认情况下,ln产生硬链接。如果给ln命令加上- s选项,则建立符号链接。