我正在构建一个用 C++ 编写的共享库。它由 2 个类组成,因此有 2 个源文件和 2 个头文件。此外,为了简化使用,第三个头文件还包括其他两个头文件。所以我想安装3个公共标头。
问题是该属性仅PUBLIC_HEADER设置为第一个文件,而不是 3 个文件的列表(逗号分隔的字符串)。我用 查了一下。因此,仅复制该文件。属性似乎没有改变任何东西。get_target_property()FRAMEWORK
最终,我成功地用 复制了它们install(FILES),但看起来不是很干净。我该如何改进这个?
CMake 版本:3.16。
set(RST_PUBLIC_HEADERS
"rst.hpp"
"CPrbs.hpp"
"CRstController.hpp"
)
set_target_properties( ${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
FRAMEWORK TRUE
PUBLIC_HEADER ${RST_PUBLIC_HEADERS}
)
install(TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include/lib${PROJECT_NAME}
)
Run Code Online (Sandbox Code Playgroud)
小智 4
将变量用引号引起来可以解决您的问题吗?
set_target_properties( ${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
FRAMEWORK TRUE
PUBLIC_HEADER "${RST_PUBLIC_HEADERS}"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3020 次 |
| 最近记录: |