Компиляция кодовых блоков не является исполняемым

Я пытаюсь скомпилировать следующий код, используя Codebloks Nightly svn 9916

#include "Main.h"
#include <iostream>

using namespace std;

int main() {

 cout << "Hello World!" << endl;
 return 0;
}
</iostream>

Запуск исполняемого файла изнутри Codeblocks, он возвращает Hello World! как и ожидалось. Но если исполняемый файл запускается извне, он возвращает ошибку приложения 0xc000007b. Это означает, что либо тип системы (32 бит, либо 64 бит) не подходит, либо что исполняемый файл не работает. Но я не понимаю, почему компиляция прекрасна при выполнении из Codeblocks. Сам исполняемый файл является 32-битным (x86), и его запуск с 32-битного или 64-битного cmd не вносит изменений.

Данные: Windows 7 Professional 64-разрядный компилятор GNU GCC

EDIT: Workarround

Статическая привязка библиотеки c++ к исполняемым файлам. Похоже, что Windows не может выполнить его, если стандартная библиотека c++ недоступна.

2 ответа

Статическая привязка библиотеки C++ по умолчанию работает.

Просто добавьте -static-libstdC++ в ваш оператор ссылки


Я бы рекомендовал снова настроить ваш компилятор из statch, чтобы узнать, вызвало ли это проблему, я бы рекомендовал посмотреть, как это видео на нем довольно подробно описывает, как это сделать с шага 1.

licensed under cc by-sa 3.0 with attribution.