安装MinGW后,C ++编译器无法工作?

时间:2018-10-18 06:40:42

标签: c++ mingw gnu

我是一名C ++新手,并且希望设置我的PC来学习编码。但是,在安装完所有MinGW软件包后,编译器将无法运行,并且不会显示出问题所在。我该如何运作?

我正在使用Windows 10(64位)。

所有MinGW软件包均已安装: enter image description here

路径已设置: enter image description here

使用g ++ -v进行测试,没关系,在显示的cmd上:

C:\ Users \ shaun \ Documents \ cpp> g ++ -v 使用内置规格。 COLLECT_GCC = g ++ COLLECT_LTO_WRAPPER = c:/ mingw / bin /../ libexec / gcc / mingw32 / 6.3.0 / lto-wrapper.exe 目标:mingw32 配置为:../src/gcc-6.3.0/configure --build = x86_64-pc-linux-gnu --host = mingw32 --with-gmp = / mingw --with-mpfr = / mingw --with -mpc = / mingw --with-isl = / mingw --prefix = / mingw --disable-win32-registry --target = mingw32 --with-arch = i586 --enable-languages = c,c ++,objc, obj-c ++,fortran,ada --with-pkgversion ='MinGW.org GCC-6.3.0-1'--enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj -exceptions-启用特定于版本的运行时库--with-libiconv-prefix = / mingw --with-libintl-prefix = / mingw --enable-libstdcxx-debug --with-tune = generic --enable -libgomp --disable-libvtv --enable-nls 线程模型:win32 gcc版本6.3.0(MinGW.org GCC-6.3.0-1)

但这不起作用: C:\ Users \ shaun \ Documents \ cpp> g ++ 1.cpp

C:\ Users \ shaun \ Documents \ cpp> g ++ 2.cpp

C:\ Users \ shaun \ Documents \ cpp>

1.cpp只是一个HelloWorld:

#include <iostream>

int main() 
{
std::cout << "Hello, World!";
return 0;
}

2.cpp是一个简单的循环:

#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    int n ;
    cout<<"please input the height"<<endl;
    cin >> n; 

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - i -1; j++)
        {
            cout<<" ";
        }
        for (int j = 0; j <= 2 * i; j++)
        {
            if (j == 0 or j == 2 * i)
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;
    }

    for (int i = 0; i < n - 1; i++)
    {
        for (int j = 0; j <= i; j++)
        {
            cout<<" ";
        }
        for (int j = 0; j <= 2 * ( n - i - 2 ); j++)
        {
            if (j == 0 or j == 2 * ( n - i - 2 ))
                cout<<"*";
            else
                cout<<" ";
        }
        cout<<endl;
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

构建和运行C ++程序是一个多步骤过程:

  1. 编辑代码
  2. 将代码编译为目标文件
  3. 将目标文件(和库)链接到可执行程序中
  4. 运行可执行程序。

对于简单的程序(如您的程序),步骤2和3可以像您一样进行组合。

您遇到的问题是您没有执行第4步,只构建了可执行文件,却从未运行过。

如果未明确指定输出文件名,则可执行程序应命名为a.exe,需要运行该程序:

> g++ 1.cpp
> a.exe

请注意,当您随后构建2.cpp时,将用新程序覆盖a.exe

如果要将可执行文件命名为其他名称,则需要使用-o选项:

> g++ 1.cpp -o 1.exe
> g++ 2.cpp -o 2.exe

现在您有两个不同的程序1.exe2.exe,每个程序都是从不同的源文件创建的。