2020-09-24

project 设置工程的名字。语法:project( [languageName1 languageName2 … ] )。注意这条指令还隐式定义了另外两个变量_BINARY_DIR 和_SOURCE_DIR,并分别赋值。
add_executable 添加一个可执行文件到工程中,并指定所需的源文件。语法:add_executable( [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL] source1 source2 … sourceN)

add_definitions 添加-D 选项到编译器,原则上可添加任意选项,但他一开始是设计为添加预处理宏定义的。语法:add_definitions(-DFOO -DBAR …)
add_library 添加一个库到工程中,并指定所需的源文件。语法:add_library( [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL] source1 source2 … sourceN)
注意的命名形式:mingw下为lib.a; msvc下为.lib

此命令还有另一种使用形式:添加外部库到工程中。语法:add_library( <SHARED|STATIC|MODULE|UNKNOWN> IMPORTED)

IMPORTED 表明此库在工程之外,是target_link_libraries的方便形式。外部库的详细信息通过set_target_properties

设置以IMPORTED_开头的属性来完成,其中最重要的就是 IMPORTED_LOCATION 属性,它指定外部库的位置。

例如:

add_library(boost_system STATIC IMPORTED)

set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION /path/to/libboost_system.a)

target_link_libraries(huang boost_system)

等价于:

target_link_libraries(huang /path/to/libboost_system.a)

add_subdirectory 添加子目录。语法:add_subdirectory(source_dir [binary_dir]
[EXCLUDE_FROM_ALL])
set 设置CMAKE变量值。语法:set(
[[CACHE [FORCE]] | PARENT_SCOPE])
set_property 设置属性。语法:set_property(<GLOBAL |
DIRECTORY [dir] |
TARGET [target1 [target2 …]] |
SOURCE [src1 [src2 …]] |
TEST [test1 [test2 …]] |
CACHE [entry1 [entry2 …]]>
[APPEND]
PROPERTY [value1 [value2 …]])
set_target_properties 设置target的属性。语法:set_target_properties(target1 target2 …
PROPERTIES prop1 value1
prop2 value2 …)
set_source_files_properties 设置源文件的属性。语法:set_source_files_properties([file1 [file2 […]]]
PROPERTIES prop1 value1
[prop2 value2 […]])
set_directory_properties 设置目录的属性。语法:set_directory_properties(PROPERTIES prop1 value1 prop2 value2)
message 显式一条消息。语法:message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]
“message to display” …)
include_directories 添加头文件搜索路径,相当于gcc命令行参数 -I。语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 dir2 …)。
link_directories 指定一个目录,链接时会自动搜索此目录下的库文件,相当于gcc命令行参数 -L。语法:link_directories(directory1 directory2 …)需要注意的是此命令只能应用于在它之后生成的target,即先执行link_directories再执行add_executable(target,…)才会对target有效果。
target_link_libraries 将target与给定的动态库/静态库进行链接,相当于gcc命令行参数 -l。语法:target_link_libraries( [item1 [item2 […]]]
[[debug|optimized|general] ] …)。注意item可使用绝对路径。参考:add_library

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值