0

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

我有一个文件,"MyFile.h"其中包括 file "includedFile.h"。但是,编译器找不到该文件。请看下图:

项目 foo 的文件/文件夹结构。

我正在做的是将项目从旧的 Solaris 机器转移到 Linux 机器。奇怪的是它可以在 Solaris 机器上按原样运行,但 Linux 有点混乱。

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

那么我如何告诉 Linux 上的编译器该包含文件在哪里,或者我如何在其中指定它"MyFile.h?"

4

2 回答 2

2

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

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

可以文件中指定完整路径,如#include "/path/to/my/includedfile.h",但我强烈反对这样做,因为它会强制所有想要编译您的代码的人都遵守该目录布局。

也相关:阅读以下链接了解gcc#include <file>之间的区别:http: //gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html#include "file"

于 2013-03-11T16:44:54.910 回答
2

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

g++ ..... -I<a path to your includes> -I<another path to includes> 
于 2013-03-11T16:46:29.013 回答