Компилятор C ++ не работает после установки MinGW? - PullRequest
0 голосов
/ 18 октября 2018

Я новичок в C ++ и хочу настроить свой компьютер на изучение кодирования.Но компилятор не работает после того, как все пакеты MinGW были установлены, и он не показывает, что идет не так.Как я могу заставить его работать?

Я использую Windows 10 (64-разрядная версия).

Все пакеты MinGW были установлены: введите описание изображения здесь

Путь был установлен: введите описание изображения здесь

Используйте 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.orgGCC-6.3.0-1 '--enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --with-префикс libiconv = / 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 голосов
/ 18 октября 2018

Сборка и запуск программы на C ++ - это многоэтапный процесс:

  1. Редактирование кода
  2. Компиляция кода в объектный файл (ы)
  3. Ссылка на объектный файл(s) (и библиотеки) в исполняемую программу
  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.exe и 2.exe,каждый из них создан из разных исходных файлов.

...