CMake - 使用不正确的参数数调用add_executable

时间:2018-05-11 22:15:57

标签: c++ cmake

我正在尝试组织一个开始拥有大量文件的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的来源。我觉得我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

你必须引用变量。

add_executable(test_mss "${Common_sources}" "${Mss_sources}")

否则对于一个空变量,CMake会将该变量替换为空,并且参数的数量似乎是错误的。

类似问题:https://stackoverflow.com/a/39733128/2799037