在Windows 8 64位中设置MingW和Code :: Blocks

时间:2013-05-23 14:22:02

标签: c++ codeblocks mingw-w64

我正在尝试在我的 Windows 8 64位笔记本电脑上设置 MingW Code :: Blocks ,我遇到了一些问题在构建main.cpp文件时。这些是我安装的版本:

我在环境变量中设置了mingw64\bin的路径。此外,在Code :: Blocks编译器设置中,我为所有 ToolChain可执行文件设置了路径。 MingW bin路径中有两个 gcc 。一个是 - gcc.exe,其他是 - x86_64-w64-mingw32-gcc.exe。对于 C ++编译器用于静态和动态库的链接器也是如此。现在,当我尝试构建一个简单的 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'

同样,有许多错误和未定义的引用 - fwprintfwprintfstd:cout等。

我确定存在一些配置问题,但我无法找出问题所在。任何人都可以看一下这个问题。

这是我正在运行的代码:

#include <iostream>

using namespace std;

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

2 个答案:

答案 0 :(得分:2)

如果您不需要64位支持,请考虑下载“codeblocks-12.11mingw-setup.exe”
它包含自己的32位mingw,并为您预先配置了所有内容。

否则,如果你仍然需要编译amd64应用程序: -
假设您解压缩到D:\ Mingw64,在“工具链可执行文件”选项卡下,将“编译器的安装目录”设置为“D:\ Mingw64 \ bin”,然后单击自动检测以检查代码:: 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\ 

点击“搜索目录”标签到中间左侧“工具链可执行文件”
添加以下路径: -

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

最后一件事 - &gt;记得将这些设置保存到磁盘!
如果在测试这个新配置时它崩溃了,你可能希望你有! 通过“File-&gt; Save Everything”执行此操作(我认为)或重新启动code :: blocks ... 而无需运行其他实例

尝试编译然后分享结果

答案 1 :(得分:0)

和平!亲爱的兄弟,我想你需要这个:

(1)    std :: cout&lt;&lt; “你好,世界!” &LT;&LT;的std :: ENDL;

每当你使用iostream.h中的预定义函数时,你需要输入“std :: function_name”,因为你可以在GCC中访问它,Code :: Blocks使用它。

(2)通过省略“using namespace std;”来尝试编译从你的代码。 因为我已经在32位Windows XP上的Code :: Blocks中多次编译了C和C ++代码,而且确实如此!

(3)确保路径设置为目录“mingw \ bin”。

(4)确保您是否安装了64位MinGW并将路径设置为其“bin”目录(如果要编译为64位)。它默认会编译为64位。

(5)尝试使用flags / arguments“-m32”和“-m64”分别编译32和64位。