SET_TARGET_PROPERTIES(hello_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
时间: 2023-06-12 10:05:20 浏览: 58
这行代码是 CMake 中用于设置目标属性的命令,其中 `hello_static` 是一个目标名称。`PROPERTIES` 后面跟着的是要设置的属性列表,包括 `CLEAN_DIRECT_OUTPUT`。`1` 表示将该属性设置为开启状态。`CLEAN_DIRECT_OUTPUT` 属性表示是否将目标文件从构建树中移除。设置为 1 时,构建目标时会将目标文件从构建树中移除,而不是将其移动到指定目录中。这样可以避免在构建多个目标时出现重复文件的问题。
相关问题
set_target_properties的参数
`set_target_properties()`函数用来设置目标的属性,其中常用的参数有:
- `target`:要设置属性的目标名称,可以是一个库、可执行文件或自定义目标。
- `PROPERTIES`:属性列表的开始标记,后面跟着一系列属性和对应的值。
- `PROPERTY`、`ADD_PROPERTY`:用来设置单个属性的函数,可以省略`PROPERTIES`关键字,例如:
```
set_target_properties(myTarget PROPERTIES CXX_STANDARD 11)
set_target_properties(myTarget PROPERTY CXX_STANDARD 11)
set_target_properties(myTarget ADD_PROPERTY CXX_STANDARD 11)
```
除了以上参数,`set_target_properties()`函数还可以接受其它一些参数,例如:
- `VERSION`和`SOVERSION`:设置库的版本号和API版本号。
- `PUBLIC_HEADER`、`PRIVATE_HEADER`和`INTERFACE_HEADER`:设置库的头文件路径。
- `OUTPUT_NAME`:设置生成的目标文件名。
- `ARCHIVE_OUTPUT_DIRECTORY`、`LIBRARY_OUTPUT_DIRECTORY`和`RUNTIME_OUTPUT_DIRECTORY`:设置库文件和可执行文件的输出路径。
- `COMPILE_FLAGS`和`LINK_FLAGS`:设置编译和链接时的额外编译选项。
具体的参数列表和用法可以参考CMake文档。
set_target_properties怎么用
set_target_properties是CMake中用来设置目标属性的函数,它的语法如下:
```
set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...)
```
其中,target1、target2等是目标的名称,可以是EXECUTABLE、STATIC_LIBRARY、SHARED_LIBRARY等类型的目标。prop1、prop2等是要设置的属性名称,value1、value2等是要设置的属性值。
例如,我们可以使用set_target_properties设置一个可执行文件的输出路径和编译选项:
```
add_executable(myapp main.cpp)
set_target_properties(myapp PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
COMPILE_OPTIONS "-Wall"
)
```
这里,我们使用add_executable创建了一个名为myapp的可执行文件,并使用set_target_properties设置了它的输出路径和编译选项。在该示例中,我们将可执行文件放在CMAKE_BINARY_DIR/bin目录中,并启用了-Wall编译选项。