4. add_executable
使用指定的源文件创建出一个可执行文件
4.1 普通可执行文件
4.1.1 命令形式(普通)
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
[source1] [source2 ...])
添加一个可执行文件目标,此目标:
- 由source列出的文件构建而来
- 名字为name
4.1.2 命令参数(普通)
name :生成可执行文件的名字,必须在工程内全局唯一WIN32 :有此参数时,WIN32_EXECUTABLE 属性会被置为true ,此时在windows环境下创建的可执行文件将以WinMain 函数代替main 函数作为程序入口,构建而成的可执行文件为GUI应用程序 而不是控制台应用程序 MACOSX_BUNDLE : 有此参数时,MACOSX_BUNDLE 属性会被置为true ,此时在macOS或者iOS上构建可执行文件目标时,目标会成为一个从Finder启动的GUI可执行程序EXCLUDE_FROM_ALL :有此参数时,此目标就会被排除在all target列表之外,即在执行默认的make时,不会构造此目标,需要构造此目标的时候,需要手动构建,如:
add_executable(test EXCLUDE_FROM_ALL test.cpp)
make test
- 可以使用
target_sources() 继续为构建可执行文件目标添加源文件,但是target_sources() 指令必须在add_executable 或add_library 之后调用。
4.1.3 示例程序(普通)
# 设置最低Cmake版本要求
cmake_minimum_required(VERSION 3.5)
# 制定项目名
project(hello_cmake)
# 生成可执行文件
add_executable(hello_cmake main.cpp)
4.2 导入的可执行文件
将工程外部的可执行目标文件导入进来,不会有任何构建可执行目标文件的动作发生
4.2.1 命令形式(导入)
add_executable(<name> IMPORTED [GLOBAL])
4.2.2 命令参数(导入)
name :导入可执行文件目标的名字IMPORTED :导入的目标文件需指定IMPORTED 属性,IMPORTED 属性指定后,目标文件的属性IMPORTED 被置为true ,在工程内构建生成的可执行文件的IMPORTED 属性会被置为false 。
4.3 别名可执行文件
为目标文件取一个别名,以便后续继续使用。
4.3.1 命令形式
add_executable(<name> ALIAS <target>)
为目标创建别名之后,可以使用别名读取目标的属性,但不能修改目标属性。
|