我在项目根目录和/src文件夹中各有一个CMakeLists.txt。/src文件夹中的文件只包含一个带有.cpp文件(set (SOURCEFILES main.cpp foo.cpp))的变量,在根目录CMakeLists.txt中,我先执行add_subdirectory(src),然后执行add_executable(MyApp ${SOURCEFILES})。
但是cmake给了我这个错误
使用不正确的参数数量调用了
add_executable,未提供源
如何让cmake看到这个变量?我读到cmake只知道全局变量,但显然不是这样的。
发布于 2011-08-01 02:45:12
正如set命令的文档中所提到的,使用add_subdirectory添加的每个目录或使用function声明的每个函数都会创建一个新的作用域。
新的子作用域继承其父作用域的所有变量定义。除非使用PARENT_SCOPE选项,否则使用set命令的新子范围中的变量赋值将仅在子范围中可见。
要使SOURCEFILES分配在项目的根文件夹中可见,请尝试:
set (SOURCEFILES main.cpp foo.cpp PARENT_SCOPE) https://stackoverflow.com/questions/6891447
复制相似问题