Как мне создать .exe из .cpp файла в Code Blocks? - PullRequest
5 голосов
/ 09 декабря 2011

Я только начал изучать C ++, и для отображения результатов кода я нашел этот метод . Это сработало, когда я впервые скомпилировал Структуру Programme.cpp:

#include <iostream>

using namespace std;

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

Он дал мне .exe, который я открыл, запустил и получил прекрасный Hello World! появился, но когда я попытался скомпилировать второй, Variables.cpp:

#include <iostream>
using namespace std;

int main ()
{
    int a, b;
    int result;

    a=5;
    b=2;
    a=a+1;
    result=a-b;

    cout << result;

    return 0;
}

Я вообще не получил .exe, поэтому не мог понять, как его открыть. Я попытался перекомпилировать Structure of Programme.cpp (после удаления всех связанных файлов), но теперь это больше не создаст .exe. Единственные созданные файлы - это Структура Programme.o и Variables.o (в подкаталоге obj \ Debug).

Единственный вопрос, который мне показался похожим, был это , но проблема, кажется, немного другая, и я попытался удалить один из файлов (поэтому был только один из Структуры Программы. cpp или Variables.cpp в папке), и у меня все еще был тот же результат.

Кроме того, ни в одном из файлов не было ошибок компилятора, и я не думаю, что я изменил какие-либо параметры в блоках кода между структурой программы и всем, что не работает.

Спасибо

Dalkius

редактировать: Журналы сборки:

Compiling: Structure of a Programme.cpp
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

Compiling: Variables.cpp
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

edit 2: Журналы сборки 'Full Commandline':

Build started on: 14-12-2011 at 07:57.39
Build ended on: 14-12-2011 at 08:01.03
-------------- Clean: Debug in cplusplus.com Tutorial ---------------
Done. 
mingw32-g++.exe -Wall -g -c "D:\My Documents\0HOME\Programming\C++\Code Blocks\cplusplus.com Tutorial\Structure of a Programme.cpp" -o "obj\Debug\Structure of a Programme.o"
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 0 warnings
mingw32-g++.exe -Wall -g -c "D:\My Documents\0HOME\Programming\C++\Code Blocks\cplusplus.com Tutorial\Variables.cpp" -o obj\Debug\Variables.o
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings

Ответы [ 4 ]

5 голосов
/ 14 декабря 2011

При просмотре обновленного журнала сборки выясняется, что шаг компоновки не выполняется для создания окончательного исполняемого файла.Есть несколько вещей, которые вы можете проверить, и несколько идей, которые нужно попробовать:

  • Убедитесь, что исполняемый файл компоновщика и правильный путь заданы, чтобы C :: B мог его найти.Для MinGW компоновщик вызывается через драйвер компилятора с именем 'g ++. Exe'.image
  • Убедитесь, что в разделе «Тип» выбрано «Консольное приложение».image
  • Если все выглядит хорошо, но все равно не связывается, попробуйте создать новый пустой console проект.Добавьте существующие файлы в этот проект и попробуйте собрать его.
  • Попробуйте создать его вручную из командной строки 'cmd', чтобы убедиться, что сам набор инструментов функционирует.Вы должны найти скрипт mingwvars.bat в вашей установке mingw.Запустите этот скрипт, чтобы открыть правильную среду командной строки.Выполните простую тестовую компиляцию с помощью этой команды:

cd "D: \ Мои документы \ 0HOME \ Programming \ C ++ \ Code Blocks \ cplusplus.com Tutorial"
g ++. Exe -Wall -g Variables.cpp -o Variables.exe

И наконец, примерно так должен выглядеть ваш журнал при правильной сборке: C::B build log

2 голосов
/ 09 декабря 2011

EXE-файлы в основном создаются каждый раз, когда вы запускаете код.Попробуйте найти исполняемый файл вашей программы, в который вы установили или скопировали программные файлы C ++.

1 голос
/ 09 декабря 2011

Я не слишком знаком с кодовыми блоками, но постараюсь помочь, объясняя, что делает компилятор.Эти .o файлы, которые он создает, называются объектными файлами.Компиляция на высоком уровне работает следующим образом:

1) Ваш исходный код компилируется компилятором.

2) Компилятор интерпретирует ваш код и создаст объект (или файл .o)для каждого файла, который у вас есть (в общем, в любом случае).

3) Эти файлы затем «связываются» вместе в процессе компиляции, известном как «компоновщик».компоновщик выпускает ваш файл .exe.

Конечно, есть еще кое-что (например, библиотечные файлы, предварительно скомпилированные dll, предварительная обработка и т. д.), но для ваших целей вы можете думать об этом, как указано выше.как только вы начинаете.

Полагаю, вы могли случайно что-то изменить с помощью компоновщика кодовых блоков, или он ищет неправильное место для связи файлов - или даже компоновщик выдает ошибку (хотя большинство IDE сообщают вам об этом).Опять же, я, к сожалению, не слишком знаком с кодовыми блоками.

Если в кодовых блоках есть какой-либо способ вызвать «чистоту», вы должны также попробовать это и попробовать пересобрать.Это удалит (очистит) все старые файлы, которые все еще могут быть там с последней сборки.

0 голосов
/ 17 декабря 2014

После сборки вашей программы в журнале сборки вы можете увидеть «Executing:», где вы можете найти путь к файлу .exe, который только что создала ваша программа.

...