首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmake变量作用域,add_subdirectory

cmake变量作用域,add_subdirectory
EN

Stack Overflow用户
提问于 2011-08-01 02:29:39
回答 1查看 74.8K关注 0票数 89

我在项目根目录和/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只知道全局变量,但显然不是这样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-01 02:45:12

正如set命令的文档中所提到的,使用add_subdirectory添加的每个目录或使用function声明的每个函数都会创建一个新的作用域。

新的子作用域继承其父作用域的所有变量定义。除非使用PARENT_SCOPE选项,否则使用set命令的新子范围中的变量赋值将仅在子范围中可见。

要使SOURCEFILES分配在项目的根文件夹中可见,请尝试:

代码语言:javascript
复制
set (SOURCEFILES main.cpp foo.cpp PARENT_SCOPE) 
票数 134
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6891447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档