C++ Can';t编译任何c++;文件

C++ Can';t编译任何c++;文件,c++,g++,sdl,C++,G++,Sdl,我有一个简单的文件,名为lol.c #include <iostream> using namespace std; int main() { return(0); } 我不知道问题是否出在SDL上,但当我尝试运行。/configure安装它时,我有以下几点: configure: error: cannot run C compiled programs. See `config.log' for more details 如果需要,我也可以将config.lo

我有一个简单的文件,名为
lol.c

#include <iostream> 

using namespace std;

int main() {
    return(0);
}
我不知道问题是否出在SDL上,但当我尝试运行
。/configure
安装它时,我有以下几点:

configure: error: cannot run C compiled programs.

See `config.log' for more details

如果需要,我也可以将config.log文件放入。

存在多个问题:

    你把一个代码< >代码>扩展到C++源文件;这是错误的,C++文件应该有一个<代码> .CPP < /> >(或<代码> CX< <代码>,>代码> C++ >代码> >代码> > C++ > /代码>,最后两个有点皱眉),或者编译器可以尝试编译成C代码;李>
  • 您正在调用gcc而不是g++;这也是错误的,调用C++文件上的GCC会忽略编译和链接正确的几个选项(包括但不限于,链接到C++标准库);这是一个旧版本的问题,现在它说的是g++
  • 但最重要的是,您的构建环境完全被破坏(有些人会说“FUBAR”);正常的情况是
    /usr/include/stdio.h
    包含来自SDL的内容(与此相比,找不到只是一个小事件);您应该真正清除并重新安装与gcc和C库头相关的任何内容;寻找一些要重新安装的libc6开发包(或类似的软件包)(注意不要弄乱C库本身,否则您的系统可能会变得基本上不可旋转)

不能将C./Cuff>(C扩展)提交给C++文件。

1-将其更改为
.cpp
(c++扩展名,lol.cpp)

2-您必须为g++提供选项(在您的示例中,使用-o创建可执行文件)
g++lol.cpp-o程序名称


3-通过终端执行
/程序名

,不需要选项2
-o
表示更改输出文件的名称,但不表示创建可执行文件。不带
-c
的用法
g++lol.cpp
意味着创建一个可执行文件。如果不使用
-o
更改名称,将使用默认输出名称。
configure: error: cannot run C compiled programs.

See `config.log' for more details