Настройка MingW и Code::Blocks в Windows 8 64 бит

Я пытаюсь настроить MingW и Code::Blocks на моем 64-битном ноутбуке с Windows 8, и при сборке main.cpp файл. Это версии, которые я установил:

Я установил путь к mingw64\bin в переменной среды. Кроме того, в настройках компилятора Code::Blocks я установил путь для всех исполняемых файлов ToolChain. В пути бина MingW есть два gcc. Один - gcc.exe и другое - x86_64-w64-mingw32-gcc.exe, То же самое для компилятора C++, Linker для статических и динамических библиотек. Теперь, когда я пытаюсь создать простой файл Hello World, он показывает некоторые ошибки:

obj\Debug\main.o -- In function swscanf  

c:\mingw\mingw64\bin\..\lib\gcc\x86_64-w64-mingw32\4.7.3\..\..\..\..\x86_64-w64-mingw32\include\wchar.h -- undefined reference to `__gxx_personality_sj0'

obj\Debug\main.o -- In function `wscanf':

c:\mingw\mingw64\bin\..\lib\gcc\x86_64-w64-mingw32\4.7.3\..\..\..\..\x86_64-w64-mingw32\include\wchar.h -- undefined reference to `__gxx_personality_sj0'

Точно так же есть много ошибок и неопределенных ссылок для - fwprintf, wprintf, std:cout, так далее..

Я уверен, что есть какая-то проблема конфигурации, но я не могу выяснить, в чем проблема. Может ли кто-нибудь взглянуть на проблему.

Вот код, который я запускаю:

#include <iostream>

using namespace std;

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

2 ответа

Решение

Если вам не требуется поддержка 64 бит, рассмотрите возможность загрузки "codeblocks-12.11mingw-setup.exe"
Он упаковывает свой собственный 32-битный Mingw и имеет все предварительно настроенные для вас.

В противном случае, если вам все еще нужно скомпилировать приложения amd64:-
Предполагая, что вы извлекли в D:\Mingw64, на вкладке "Исполняемые файлы цепочки инструментов" установите "Каталог установки компилятора" на "D:\Mingw64\bin", затем нажмите "автоопределение", чтобы проверить, нравится ли code:: blocks то, что он находит.

Если все в порядке, убедитесь, что остальные поля следующие:-

C compiler: x86_64-w64-mingw32-gcc.exe
C++ compiler: x86_64-w64-mingw32-g++.exe
Linker for dynamic libs: x86_64-w64-mingw32-g++.exe
Linker for static libs: x86_64-w64-mingw32-ar.exe
Debugger: GDB/CDB Debugger... 
Ressource compiler: x86_64-w64-mingw32-windres.exe
Make program: mingw32-make.exe

Нажмите на вкладку "Дополнительные пути" и введите следующую строку:- (путь правильный для версии 4.7.4, той, которую вы скачали. Она заканчивается на 4.7.3)

D:\Mingw64\libexec\gcc\x86_64-w64-mingw32\4.7.3\ 

Перейдите на вкладку "Поиск в каталогах", чтобы сразу перейти к "Исполняемым файлам Toolchain".
Добавьте следующие пути:-

D:\Mingw64\include
D:\Mingw64\x86_64-w64-mingw32\include
D:\Mingw64\x86_64-w64-mingw32\include\c++\4.7.3
D:\Mingw64\x86_64-w64-mingw32\include\c++\4.7.3\backward
D:\Mingw64\x86_64-w64-mingw32\include\c++\4.7.3\x86_64-w64-mingw32
D:\Mingw64\lib\gcc\x86_64-w64-mingw32\4.7.3\include

Нажмите на вкладку "компоновщик" и добавьте следующие пути:-

D:\Mingw64\Lib 
D:\Mingw64\x86_64-w64-mingw32\lib

И, наконец, нажмите "вкладку" Настройки компилятора ", нажмите" Другие параметры "и добавьте:-

-m64

И последнее: не забудьте сохранить эти настройки на диск!
Если во время тестирования этой новой конфигурации произойдет сбой, возможно, вы захотите!
Сделайте это (я думаю) либо "Файл-> Сохранить все", либо перезапустите code:: blocks...без запуска другого экземпляра.

Попробуйте что-то скомпилировать и поделитесь результатом

Мир! Дорогой брат, я думаю, тебе нужно это:

(1) std:: cout << "Привет, мир!" << std::endl;

Вам нужно ставить "std::function_name" всякий раз, когда вы используете предопределенную функцию из iostream.h, потому что это ваш способ доступа к нему в GCC, который использует Code::Blocks.

(2) Попробуйте его скомпилировать, пропустив "using namespace std;" из вашего кода. Потому что я много раз компилировал код C и C++ в Code::Blocks на 32-битной Windows XP, и это было сделано!

(3) Убедитесь, что путь указан в каталоге "mingw \ bin".

(4) Убедитесь, что у вас установлен 64-битный MinGW и путь к его каталогу bin (если вы хотите скомпилировать для 64-битной). Он будет скомпилирован для 64-битной версии по умолчанию.

(5) Попробуйте флаги / аргументы "-m32" и "-m64" для компиляции для 32- и 64-больших соответственно.

Другие вопросы по тегам