繁体   English   中英

如何使用不同的IDE #include文件到单独的目录中?

[英]How to #include files in separate directories using different IDEs?

我正在MacOS X上使用Xcode进行C ++项目的工作,现在开始使用Code :: Blocks IDE将其移植到Linux。

我的许多源文件都位于单独的目录中,包括它们在内我遇到了问题。

这是此问题的示例:

folder1/foo.h

folder2/dog.h

foo.h includes dog.h with: `#include "dog.h"`

如果两个文件在同一个项目中,它在Xcode上都可以正常工作,但是如果我在Code :: Blocks中尝试它,则在找到它时会出错。

我可以通过更改代码以使用相对包含路径来解决Code :: Blocks中的此问题:

#include "../folder2/dog.h"

不幸的是,这样做会使Xcode无法找到文件。

如何解决此问题,以便可以在多个IDE中编译相同的代码? 我想避免将所有源代码都放在同一个文件夹中。 我是否应该使用类似于以下内容的预处理器语句:

#if XCODE
#include "dog.h"
#else
#include "../folder2/dog.h"
#endif

不幸的是,给定的编译器/ IDE如何定位依赖项完全取决于编译器/ IDE。 没有办法以所有开发环境都可以接受的方式进行安排。

我不知道Xcode或Codeblocks,但是我确定必须有一些项目配置来控制它们在哪里查找#include文件。

重新排列您的结构,以使一个项目只有一个公共的include目录:

/project/
        /src/*.cpp
        /include/*.hpp
                /folder1/dog.hpp
                /folder2/cat.hpp

现在说#include <config.hpp>#include <folder1/dog.hpp>等,并添加到编译器标志中:

-I ${PROJECT_DIR}/include

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM