- CMakeLists案例
# 声明要求的 cmake 最低版本
cmake_minimum_required( VERSION 2.8 )
# 声明一个 cmake 工程
project( HelloSLAM )
# 设置编译模式
set( CMAKE_BUILD_TYPE "Debug" )
# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable( helloSLAM helloSLAM.cpp )
# 添加一个库
add_library( hello libHelloSLAM.cpp )
# 共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )
add_executable( useHello useHello.cpp )
# 将库文件链接到可执行程序上
target_link_libraries( useHello hello_shared )
- 编译可执行文件
(1) 不加库
# 语法:add_executable( 程序名 源代码文件 )
add_executable( helloSLAM helloSLAM.cpp )
(2)加库
# add_executable( 程序名 源代码文件 )
add_executable( useHello useHello.cpp )
# 将库文件链接到可执行程序上
# target_link_libraries( 程序名 共享库名 )
target_link_libraries( useHello hello_shared )
- 编译静态库和共享库
# 添加一个库
add_library( hello libHelloSLAM.cpp )
# 共享库
add_library( hello_shared SHARED libHelloSLAM.cpp )
-install 安装
install(FILES COPYRIGHT README DESTINATION share/doc/cmake/t2)
#
install(PROGRAMS runhello.sh DESTINATION bin)
#
install(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)
#
目标文件安装
举个例子
INSTALL (TARGET myrun mylib mystaticlib
RUNTIME DESTINATION bin
LIB)