Pie*_*tro 5 makefile build cmake
我想在不在Windows中时从构建中排除一些源文件.
以下CMakeLists.txt cmake文件有什么问题?
aux_source_directory(. SRC_LIST)
# Remove Microsoft specific files
message(${SRC_LIST})
list(REMOVE_ITEM SRC_LIST stdafx.h stdafx.cpp)
message("------------------")
message(${SRC_LIST})
Run Code Online (Sandbox Code Playgroud)
尝试删除这两个文件之前和之后的消息内容完全相同.
怎么了?
您必须指定要删除的元素的确切名称.
在您的情况下,aux_source_directory在每个条目前加上a ./,因此必须使用正确的命令
list(REMOVE_ITEM SRC_LIST ./stdafx.h ./stdafx.cpp)
Run Code Online (Sandbox Code Playgroud)
另外,请确保您了解使用手动调用来aux_source_directory维护源文件列表的含义:
使用此命令避免编写库或可执行目标的源文件列表很有诱惑力.虽然这似乎有效,但CMake无法生成一个知道何时添加新源文件的构建系统.通常,生成的构建系统知道何时需要重新运行CMake,因为CMakeLists.txt文件被修改为添加新源.当源只是添加到目录而不修改此文件时,必须手动重新运行CMake以生成包含新文件的构建系统.
| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |