我正在尝试组织一个开始拥有大量文件的C ++项目。我想创建两个可执行文件,使用Cmake共享一些源文件。我在这里找到了一个有趣的程序:
How to add source files in another folder
以下是我的版本
file(GLOB Common_sources RELATIVE "Common" "*cpp")
file(GLOB Mps_sources RELATIVE "Mps" "*.cpp")
file(GLOB Mss_sources RELATIVE "Mss" "*.cpp")
add_executable(test_mss ${Common_sources} ${Mss_sources})
add_executable(test_mps ${Common_sources} ${Mps_sources})
但是CMake抱怨
CMake Error at src/CMakeLists.txt:44 (add_executable):
add_executable called with incorrect number of arguments
CMake Error at src/CMakeLists.txt:45 (add_executable):
add_executable called with incorrect number of arguments
它说看CMakeOutput.log
,但文件真的太长了,我找不到有用的信息。
我检查了CMake文档,似乎它可以将第二个源作为附加参数。 https://cmake.org/cmake/help/v3.0/command/add_executable.html
我想找到这个bug的来源。我觉得我错过了一些明显的东西。
答案 0 :(得分:2)
你必须引用变量。
add_executable(test_mss "${Common_sources}" "${Mss_sources}")
否则对于一个空变量,CMake会将该变量替换为空,并且参数的数量似乎是错误的。