c ++无法找到包含

Dav*_*mil 2 c++ libraries

刚刚在debian 7中安装了build-essentinals.但是我注意到c ++的包含在/ usr/include/c ++/4.7中...有人为什么?包含曾经在/ usr/include中,据我记得...

一切都失败了......即

main.c:2:20: fatal error  iostream: No such file or directory
Run Code Online (Sandbox Code Playgroud)

即使我用-I包含它,标题也会从标题中调用,它不会找到任何内容,例如:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以beacuse位不在/ usr/include中但在/usr/include/c++/4.7编译器找不到它...

我正在使用g ++

crafter# g++ -o craft main.cpp 
In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/os_defines.h:40:0,
                 from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++config.h:414,
                 from /usr/include/c++/4.7/iostream:39,
                 from main.cpp:2:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

编译终止.

谁知道如何解决这个问题?

谢谢你的帮助!

Ste*_*ppo 6

您正在使用gcc编译C++代码,这导致在头查找过程中不考虑C++系统头.请改用g++命令.

此外,您应该重命名main.c为,main.cpp因为您正在使用C++功能.

最后,编译.cpp文件gcc将清除预处理和编译阶段,但链接失败,因为libstdc++不会隐式添加.

你的命令行应该是这样的g++ main.cpp -o outname.