《Cmake》笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a356337092/article/details/68059654

CMakeLists.txt :

PROJECT (HELLO) 指定项目名称

SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]) 指定变量
SET(SRC_LIST main.c t1.c t2.c) 参数之间用分号或者空格分开,指令大小写无关(建议大写),参数有关

MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display” …)

ADD_EXECUTABLE(hello ${SRC_LIST})
在IF语句中 不要使用${},直接使用变量名

PROJECT_BINARY_DIR指编译路径(/build),PROJECT_SOURCE_DIR 指工程路径

make clean 可以清理构建结果

ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
这个指令用于向当前工程添加存放源文件的子目录,[并可以指定中间二进制和目标二进制存放的位置。EXCLUDE_FROM_ALL 参数的含义是将这个目录从编译过程中排除,比如,工程的 example,可能就需要工程构建完成后,再进入 example 目录单独进行构建(当然,你
也可以通过定义依赖来解决此类问题)。]

ADD_SUBDIRECTORY无论是否指定编译输出,都通过 SET 指令重新定义 EXECUTABLE_OUTPUT_PATH 和LIBRARY_OUTPUT_PATH 变量来指定最终的目标二进制的位置(指最终生成的 hello 或者最终的共享库,不包含编译生成的中间文件)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)

SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
在哪里 ADD_EXECUTABLE 或 ADD_LIBRARY,如果需要改变目标存放路径,就在哪里加入上述的定义


静态库与动态库构建

ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) 共享库

ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC}) 静态库


INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 …)
这条指令可以用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割,如果路径
中包含了空格,可以使用双引号将它括起来,默认的行为是追加到当前的头文件搜索路径的
后面,你可以通过两种方式来进行控制搜索路径添加的方式

猜你喜欢

转载自blog.csdn.net/a356337092/article/details/68059654
今日推荐