cmake 中的add_executable()请详细介绍
时间: 2024-03-16 20:44:31 浏览: 24
在CMake中,`add_executable()`函数用于将源文件编译成可执行文件,其语法格式如下:
```
add_executable(<name> [WIN32] [MACOSX_BUNDLE]
[EXCLUDE_FROM_ALL]
source1 [source2 ...])
```
其中,`<name>`表示生成的可执行文件的名称,`source1 [source2 ...]`表示源文件列表,可以包含多个源文件,CMake会将这些源文件编译成一个可执行文件。
`WIN32`和`MACOSX_BUNDLE`是可选参数,用于指定生成的可执行文件的类型。`WIN32`表示这是一个Windows应用程序,而`MACOSX_BUNDLE`表示这是一个MacOS X应用程序,如果不指定,则生成的是一个普通的可执行文件。
`EXCLUDE_FROM_ALL`也是可选参数,用于指定该可执行文件不参与all或者默认构建目标的构建过程中。
例如,下面的代码将会编译`main.cpp`和`utils.cpp`两个源文件,并生成一个名为`myapp`的可执行文件:
```
add_executable(myapp main.cpp utils.cpp)
```
当我们在命令行执行`make`或者`ninja`等构建工具时,CMake会自动将`main.cpp`和`utils.cpp`编译成一个可执行文件`myapp`。
相关问题
CMake中add_executable 和 add_library区别
在 CMake 中,`add_executable` 和 `add_library` 都是用来定义一个目标文件的方法,但它们的作用不同:
- `add_executable` 用于创建一个可执行文件,即生成一个 .out 文件,这个文件可以直接运行。
- `add_library` 用于创建一个库文件,即生成一个 .a 或 .so 文件,这个文件可以被其他程序链接使用。
另外,`add_library` 还可以定义 STATIC 和 SHARED 两种类型的库文件。STATIC 类型的库文件是静态链接库,链接时将库文件的代码完全复制一份到可执行文件中;SHARED 类型的库文件是动态链接库,链接时只将一个指向库文件的指针放入可执行文件中,运行时需要加载动态链接库并将其代码复制到内存中。
需要注意的是,在使用 `add_library` 定义一个库文件时,还需要通过 `target_link_libraries` 命令将该库文件连接到其他可执行文件或库文件中。
cmake add_executable
cmake add_executable是CMake命令之一,用于创建一个可执行文件。该命令需要指定可执行文件的名称和源代码文件的路径。例如,以下代码将创建一个名为myapp的可执行文件,并将源代码文件main.cpp添加到该可执行文件中:
```
add_executable(myapp main.cpp)
```