Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gcc-4.9不能编译“包含”;“用户定义文件”; 我尝试用GCC-4.9. < /P>编译以下简单C++文件(A.CPP) #include <iostream> #include <foo> using namespace std; int main() { int x = 3; cout << f(x) << endl; return 0; }_C++_Gcc - Fatal编程技术网

gcc-4.9不能编译“包含”;“用户定义文件”; 我尝试用GCC-4.9. < /P>编译以下简单C++文件(A.CPP) #include <iostream> #include <foo> using namespace std; int main() { int x = 3; cout << f(x) << endl; return 0; }

gcc-4.9不能编译“包含”;“用户定义文件”; 我尝试用GCC-4.9. < /P>编译以下简单C++文件(A.CPP) #include <iostream> #include <foo> using namespace std; int main() { int x = 3; cout << f(x) << endl; return 0; },c++,gcc,C++,Gcc,我无法使用gcc-4.9编译.cpp,因为编译器会说: a.cpp:2:15: fatal error: foo: No such file or directory 我认为导致编译错误的原因是,用户定义的文件作为标准头文件(在“”)包含在内 以前,我看到过相同的错误,并且知道解决这些编译错误的两种方法 第一个是将编译器gcc-4.9更改为gcc-5.0 第二个是替换 #include <foo> 虽然我不知道为什么这些方法可以解决编译错误,但我现在就开始这样做了 但现在,我看

我无法使用gcc-4.9编译.cpp,因为编译器会说:

a.cpp:2:15: fatal error: foo: No such file or directory
我认为导致编译错误的原因是,用户定义的文件作为标准头文件(在“”)包含在内

以前,我看到过相同的错误,并且知道解决这些编译错误的两种方法

第一个是将编译器gcc-4.9更改为gcc-5.0

第二个是替换

#include <foo>

虽然我不知道为什么这些方法可以解决编译错误,但我现在就开始这样做了

但现在,我看到了一个无法用第二种方法解决的代码。 它包括许多用户定义的文件,作为许多头文件中的标准文件。因此,通过第二种方法,我们必须编辑许多头文件

它也是通过第一种方法解决的,但我现在想用gcc-4.9进行编译。 我认为如果有一种方法可以不用编辑就用gcc-4.9编译“a.cpp”,那么代码也可以用同样的方法编译

如何不用编辑就通过gcc-4.9编译“a.cpp”。为什么我可以用gcc-5.0编译“a.cpp”?

#include“file”
将在包含它的文件所在的目录中查找
文件
#include
完全依赖于include路径,因此编译命令行上需要
-I.
(或任何路径)。

#include
#include“foo”
不是一回事

首先只在标准位置查找
foo
文件,而后者首先在当前目录中查找,然后在标准位置查找。这就是为什么您应该对本地包含文件使用
#include“foo”
,而从不使用
#include

但是标准位置列表可以通过
-I
选项进行配置:
gcc-I/path/to/include/dir-other_options source.c-o executable
。如果要了解更多详细信息,请使用mangcc或info gcc


即使
-I.
选项允许您始终使用
#include
请不要这样做,如果您希望您的代码被其他人阅读。

include文件在哪里找不到? 我猜是一个子目录

在这种情况下,答案是要么将子目录添加到搜索路径,要么将include更改为

#include "subdirectory/name_of_file" 

最好将系统文件和本地文件分开-建议“foo”首先只在标准位置查找foo文件,而后者首先在当前目录中查找,然后在标准位置查找。你倒过来了。
#include "foo"
#include "subdirectory/name_of_file"