Linux上缺少包含文件的编译器选项

时间:2013-03-11 16:42:33

标签: c++ linux gcc

自从我处理了C / C ++以来已经有一段时间了,所以请原谅我,如果这是一个非常容易回答的问题 - 我只是不知道如何“谷歌”它。

我有一个文件“MyFile.h”,其中包含“includedFile.h”文件。但是,编译器无法归档该文件。请看下面的图片:

File/folder structure for project foo.

我正在做的是将项目从旧的Solaris盒子移动到Linux盒子。奇怪的是,它在Solaris盒子上工作,但Linux有点困惑。

我用于项目的makefile也没有改变,这让我觉得它可能是一个编译器选项......

那么如何告诉Linux上的编译器包含该文件的位置,或者如何在“MyFile.h”中指定它?

2 个答案:

答案 0 :(得分:2)

使用gcc和clang,您可以使用-I指定包含路径:

g++ -o myprogram main.cc extra.cc -I/usr/include/boost -I/my/extra/include/files

遵守该目录布局。

同样相关:请阅读以下链接,了解gcc中#include "/path/to/my/includedfile.h"#include <file>之间的差异:http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html

答案 1 :(得分:2)

假设您使用的是g ++,则会传递一个带有-I标记的路径。

g++ ..... -I<a path to your includes> -I<another path to includes>