CMakeLists(未完待续)

(1)aux_source_directory(./src DIR_SRCS) 将文件夹src下的所有源文件存到变量DIR_SRCS中,其中“.”表示CMakeLists.txt所在目录。

(2)PROJECT_SOURCE_DIR为包含PROJECT()的最近一个CMakeLists.txt文件所在的文件夹;

(3)target_link_libraries(Tutorial add)可由link_libraries(add)代替,但是link_libraries(add)一定要放在add_executable()的前面;

(4)转自:https://blog.csdn.net/cartzhang/article/details/21518253

#添加所有源文件,可定义文件格式。
#说明一下:GLOB_RECURSE
#file(GLOB_RECURSE variable [RELATIVE path]
#       [FOLLOW_SYMLINKS] [globbingexpressions]...)
#GLOB_RECURSE 与GLOB类似,区别在于它会遍历匹配目录的所有文件以及子目录下面的文件。
#对于属于符号链接的子目录,只有FOLLOW_SYMLINKS指定一或者cmake策略CMP0009没有设置为NEW时,才会遍历这些目录。
#
#GLOB的使用方法:
# file(GLOB variable [RELATIVE path] [globbingexpressions]...)
#
#GLOB 会产生一个由所有匹配globbing表达式的文件组成的列表,并将其保存到变量中。
#Globbing 表达式与正则表达式类似,但更简单。如果指定了RELATIVE 标记,
#返回的结果将是与指定的路径相对的路径构成的列表。 (通常不推荐使用GLOB命令来从源码树中收集源文件列表。
#原因是:如果CMakeLists.txt文件没有改变,

(5)cmake编译Debug和Release

CMake 中有一个变量 CMAKE_BUILD_TYPE ,可以的取值是 Debug Release Rel WithDebInfo 和 MinSizeRel。当这个变量值为 Debug 的时候,CMake 会使用变量 CMAKE_CXX_FLAGS_DEBUG 和 CMAKE_C_FLAGS_DEBUG 中的字符串作为编译选项生成 Makefile ,当这个变量值为 Release 的时候,工程会使用变量 CMAKE_CXX_FLAGS_RELEASE 和 CMAKE_C_FLAGS_RELEASE 选项生成 Makefile。

(6)link_libraries和target_link_libraries

https://blog.csdn.net/jigetage/article/details/84206082

1,link_libraries用在add_executable之前,target_link_libraries用在add_executable之后

2,link_libraries用来链接静态库,target_link_libraries用来链接导入库,即按照header file + .lib + .dll方式隐式调用动态库的.lib库
 

 

©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页