本文用于记录工作中遇到的cmake命令,依据实际案例分析,不一定全,会不断补充。
include该命令用来载入并运行来自于文件或模块的CMake代码。
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/cross-toolchain.cmake)
该例子表示加载当前目录的父级目录下/cmake/cross-toolchain.cmake文件。
${CMAKE_CURRENT_LIST_DIR}
:当前正在处理的列表文件的完整目录。
include指令一般用于语句的复用。如果有一些语句需要在很多CMakeLists.txt文件中使用,为避免重复编写,可以将其写在.cmake文件中,然后在需要的CMakeLists.txt文件中进行include *** 作就行了。
.cmake文件里包含了一些cmake命令和一些宏/函数,当CMakeLists.txt包含该.cmake文件时,当编译运行时,该.cmake里的一些命令就会在该包含处得到执行,并且在包含以后的地方能够调用该.cmake里的一些宏和函数。
add_subdirectory该命令用来添加一个子目录并构建该子目录。
add_subdirectory(src)
该例子告诉CMake去src目录中查看可用的CMakeLists.txt文件。
find_package该命令用于查找并引入外部依赖包。
find_package(BOOST)
引入Boost库。
include_directories将给定的目录添加到编译器用来搜索头文件的目录中。
include_directories(${BOOST_INCLUDE_DIR})
将Boost库头文件所在目录添加到编译器用来搜索头文件的目录中。
aux_source_directory查找并搜集所有在指定路径下的源文件的文件名,并将输出结果列表储存在指定的变量中。
aux_source_directory(../../datapool/src SRC_DATAPOOL)
将…/…/datapool/src下所有源文件名存储到SRC_DATAPOOL中,便于add_executable(main ${SRC_DATAPOOL})
使用。
使用指定的源文件来生成目标可执行文件。
add_executable(main ${SRC} ${SRC_DATAPOOL})
使用${SRC} ${SRC_DATAPOOL}代表的文件名生成main可执行文件。
target_link_libraries该指令的作用为将目标文件与库文件进行链接。
target_link_libraries(main ${BOOST_LIBRARIES})
将目标文件main与boost库的${BOOST_LIBRARIES}链接。
install用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等。
install(TARGETS main
RUNTIME DESTINATION bin)
安装目标(TARGET):main
RUNTIME:可执行二进制文件;
DESTINATION:指定磁盘上要安装文件的目录;
将可执行二进制文件main安装到bin目录中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)