Cmake错误:set命令不喜欢上一个set命令中的相同.h文件
Cmake error: set command does not like the same .h files from a previous set command
我的CMake.txt文件中有两个set命令。我有这样的东西:
set(GUI_SOURCE_FILES
src/UINode/main.cpp
src/UINode/b.cpp
src/UINode/c.cpp
src/UINode/d.cpp
)
set(GUI_HEADER_FILES
src/UINode/b.h
src/UINode/c.h
src/UINode/d.h
)
这很好用,可执行文件也很好。现在,我想要另一组set命令,这些命令需要包含上述内容,并添加新的.h和.cpp文件。我不确定这是否可能,但我知道我不能做这样的事情:
set(GUIA_SOURCE_FILES
src/UINode/different_main.cpp
src/UINode/b.cpp
src/UINode/c.cpp
src/UINode/d.cpp
src/anotherpath/e.cpp
)
set(GUIA_HEADER_FILES
src/UINode/b.h
src/UINode/c.h
src/UINode/d.h
src/anotherpath/e.h
)
第1版:感谢回复user2799037!我现在有这样的东西:
set(COMMON_SOURCE_FILES
src/UINode/a.cpp
src/UINode/b.cpp
src/UINode/c.cpp
)
set(COMMON_HEADER_FILES
src/UINode/a.h
src/UINode/b.h
src/UINode/c.h
)
然后我使用它们:
set(GUI_SOURCE_FILES
src/UINode/main_GUI.cpp
${COMMON_SOURCE_FILES}
)
set(GUI_HEADER_FILES
${COMMON_HEADER_FILES}
)
然后做QT4_WRAP_CPP(guid_HEADER_FILES_HPP${guid_HEADER.FILES})然后是rosbuild_add_executable。
下一部分我做:
set(GUIA_SOURCE_FILES
src/commands/main_GUI1.cpp
${COMMON_SOURCE_FILES}
)
set(GUIA_HEADER_FILES
${COMMON_HEADER_FILES}
src/pathplanning/anotherheader.h
)
但当我这样做时,我会得到一个错误:QT4_WRAP_CPP(GUIA_HEADER_FILES_HPP${GUIA_HEADER_FILES})
'CMake错误:尝试将自定义规则添加到输出'
我想你想做一些类似的事情
set(COMMON_SOURCE_FILES
src/UINode/b.cpp
src/UINode/c.cpp
src/UINode/d.cpp
)
set(COMMON_HEADER_FILES
src/UINode/b.h
src/UINode/c.h
src/UINode/d.h
)
并为您使用这些更具体的变量:
set(GUI_SOURCE_FILES
${COMMON_SOURCE_FILES }
src/anotherpath/main.cpp
)
set(GUIA_SOURCE_FILES
${COMMON_SOURCE_FILES }
src/anotherpath/different_main.cpp
)
收割台模拟。使用这种方法可以避免出现两个列表不同步的情况。
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我无法更改"set<set>"循环中的值<int>
- 使用QProcess执行命令,并将结果存储在QStringList中
- 数组长度,为什么从命令行获取时不能使用它?
- 对于set上的循环-获取next元素迭代器
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- clang整洁10忽略了我的NOLINT命令
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 在声明中合并两个常量"std::set"(不是在运行时)
- 有没有办法对std::unordered_set、std::unrdered_map、std::set、std::map
- 如何使用ESP8266向谷歌主页发送命令
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- Cmake错误:set命令不喜欢上一个set命令中的相同.h文件
- Eclipse CDT / GDB 错误:未定义的维护集命令:"python print-stack off" 。试试"help maintenance set"