刚刚在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)
编译终止.
谁知道如何解决这个问题?
谢谢你的帮助!
您正在使用gcc编译C++代码,这导致在头查找过程中不考虑C++系统头.请改用g++命令.
此外,您应该重命名main.c为,main.cpp因为您正在使用C++功能.
最后,编译.cpp文件gcc将清除预处理和编译阶段,但链接失败,因为libstdc++不会隐式添加.
你的命令行应该是这样的g++ main.cpp -o outname.