首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对include_directories的澄清

对include_directories的澄清
EN

Stack Overflow用户
提问于 2013-10-09 16:01:39
回答 1查看 616关注 0票数 0

我正在尝试使用cmake,但我对cmake和c++都是新手。我想在其他不同的程序中使用一段代码。文件夹结构如下所示:

代码语言:javascript
复制
/modules/foo
/modules/foo/src
/modules/foo/include/foo
/cmake
/apps/bar
/apps/bar/src
/apps/bar/include

我的问题是,在主要栏中,我可以同时包含(以及编译和运行)这两者。

代码语言:javascript
复制
#include "foo.h"
#include "foo/foo.h"

我认为这是某种不对劲的症状。我要找的是

代码语言:javascript
复制
#include "foo.h" // only inside the foo source code

#include "foo/foo.h" // outside

如果我从/ include_directories(include/foo) /foo/cmakeLists.txt中删除/foo/cmakeLists.txt,就会得到一个编译错误,即'foo.h‘文件在//foo/src/foo.cpp中找不到

如果从include_directories(${CMAKE_CURRENT_LIST_DIR}/../modules/foo/include)中删除FindFoo.cmake,则在'foo/foo.h‘文件中找不到/app/bar/src/main.cpp中的错误。

我能做什么?解决这类问题的普遍做法是什么?我是否必须忽略这样一个事实:在app/bar/src/main.cpp中,我可以同时包含foo.hfoo/foo.h?我必须只写一次include_directories并在foo.cpp中使用#include "foo/foo.h吗?

EN

回答 1

Stack Overflow用户

发布于 2013-10-10 13:36:59

  • 使用foo.h和foo.cpp创建一个单独的目录foo。在foo.cpp中,put #include "foo.h",可能首先包括
  • 添加一个CMakeLists.txt文件来创建foo库,add_library命令。
  • 在主include_directories(${CMAKE_SOURCE_DIR})的序言中添加CMakeLists.txt
  • 在项目的其他地方,您可以通过指定#include "foo/foo.h"来包含foo.h。无论您做什么,都不要忘记使用foo命令链接到target_link_libraries库。

珍贵链接:Commands

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19277027

复制
相关文章

相似问题

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