无法编译任何 C++ 文件
Can't compile any c++ file
我有这个简单的文件,叫做 lol.c
#include <iostream>
using namespace std;
int main() {
return(0);
}
在终端中,我输入 g++ lol.c
这是输出:
In file included from /usr/include/wchar.h:36:0,
from /usr/include/c++/4.9/cwchar:44,
from /usr/include/c++/4.9/bits/postypes.h:40,
from /usr/include/c++/4.9/iosfwd:40,
from /usr/include/c++/4.9/ios:38,
from /usr/include/c++/4.9/ostream:38,
from /usr/include/c++/4.9/iostream:39,
from lol.c:1:
/usr/include/stdio.h:30:22: fatal error: SDL_main.h: File o directory non esistente
#include "SDL_main.h"
^
compilation terminated.
我不知道问题是否出在 SDL 上,但是当我尝试 运行 ../configure
安装它时,我得到了这个:
configure: error: cannot run C compiled programs.
See `config.log' for more details
如果需要这个,我也可以放config.log文件。
存在多个问题:
- 您为 C++ 源文件提供了
.c
扩展名;这是错误的,C++ 文件应该有一个 .cpp
(或 .cxx
、.C
、.c++
,最后两个有点不受欢迎)扩展名,否则编译器可能会尝试将其编译为 C 代码;
您正在调用 gcc 而不是 g++;这也是错误的,在 C++ 文件上调用 gcc 会错过编译和 link 正确所需的几个选项(包括但不限于针对 C++ 标准库的 linking);在这个问题的旧版本中,现在它说 g++;
- 但最重要的是,您的构建环境已完全损坏(有人会说 "FUBAR"); 不
/usr/include/stdio.h
包含来自 SDL 的东西是正常的(与此相比,无法找到它只是一个小事件);您真的应该清除并重新安装与 gcc 和 C 库的 headers 相关的所有内容;寻找一些 libc6-dev 包(或类似的)来重新安装(注意不要弄乱 C 库本身,否则您的系统可能会变得无法启动)。
您不能将 .c
(c 扩展名)赋予 c++ 文件。
1 - 将其更改为 .cpp
(c++ 扩展,lol.cpp)
2 - 您必须为 g++ 提供选项(在您的情况下使用 -o 来创建可执行文件)g++ lol.cpp -o nameofyourprogram
3 - 通过您的终端执行 ./nameofyourprogram
我有这个简单的文件,叫做 lol.c
#include <iostream>
using namespace std;
int main() {
return(0);
}
在终端中,我输入 g++ lol.c
这是输出:
In file included from /usr/include/wchar.h:36:0,
from /usr/include/c++/4.9/cwchar:44,
from /usr/include/c++/4.9/bits/postypes.h:40,
from /usr/include/c++/4.9/iosfwd:40,
from /usr/include/c++/4.9/ios:38,
from /usr/include/c++/4.9/ostream:38,
from /usr/include/c++/4.9/iostream:39,
from lol.c:1:
/usr/include/stdio.h:30:22: fatal error: SDL_main.h: File o directory non esistente
#include "SDL_main.h"
^
compilation terminated.
我不知道问题是否出在 SDL 上,但是当我尝试 运行 ../configure
安装它时,我得到了这个:
configure: error: cannot run C compiled programs.
See `config.log' for more details
如果需要这个,我也可以放config.log文件。
存在多个问题:
- 您为 C++ 源文件提供了
.c
扩展名;这是错误的,C++ 文件应该有一个.cpp
(或.cxx
、.C
、.c++
,最后两个有点不受欢迎)扩展名,否则编译器可能会尝试将其编译为 C 代码; 您正在调用 gcc 而不是 g++;这也是错误的,在 C++ 文件上调用 gcc 会错过编译和 link 正确所需的几个选项(包括但不限于针对 C++ 标准库的 linking);在这个问题的旧版本中,现在它说 g++;- 但最重要的是,您的构建环境已完全损坏(有人会说 "FUBAR"); 不
/usr/include/stdio.h
包含来自 SDL 的东西是正常的(与此相比,无法找到它只是一个小事件);您真的应该清除并重新安装与 gcc 和 C 库的 headers 相关的所有内容;寻找一些 libc6-dev 包(或类似的)来重新安装(注意不要弄乱 C 库本身,否则您的系统可能会变得无法启动)。
您不能将 .c
(c 扩展名)赋予 c++ 文件。
1 - 将其更改为 .cpp
(c++ 扩展,lol.cpp)
2 - 您必须为 g++ 提供选项(在您的情况下使用 -o 来创建可执行文件)g++ lol.cpp -o nameofyourprogram
3 - 通过您的终端执行 ./nameofyourprogram