我正在尝试在我的Windows 8 64位笔记本电脑上设置 MingW 和 Code::Blocks ,我在构建 main.cpp
文件时遇到了一些问题 . 这些是我安装的版本:
MingW的
- x86_64-w64-mingw32-gcc-4.7.4-release-win64_rubenvb.7z(该列表中的第4个),和
对于Code :: Blocks, - codeblocks-12.11-setup.exe .
我在环境变量中设置了 mingw64\bin
的路径 . 此外,在Code :: Blocks编译器设置中,我为所有ToolChain可执行文件设置了路径 . MingW bin路径中有两个gcc . 一个是 - gcc.exe
,另一个是 - x86_64-w64-mingw32-gcc.exe
. C Compiler,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,在"Tool Chain Executables"选项卡下,将"Compiler's Installation Directory"设置为"D:\Mingw64\bin",然后单击自动检测以检查code :: blocks是否喜欢它找到的内容 .
如果一切都好,请确保其余字段如下: -
单击“其他路径”选项卡并输入以下行: - (路径对于版本4.7.4,您下载的路径是正确的 . 它以4.7.3结尾)
单击"Search directories"选项卡到中间左侧"Toolchain Executables"
添加以下路径: -
单击“链接器”选项卡并添加以下路径: -
最后点击“编译器设置”选项卡,点击“其他选项”并添加: -
最后一件事 - >记得将这些设置保存到磁盘!
如果在测试这个新配置时它崩溃了,你可能希望你有!
通过"File->Save Everything"执行此操作(我认为)或重新启动代码:: blocks ... without another instance running .
尝试编译某些内容然后分享结果
和平!亲爱的兄弟,我想你需要这个:
(1)std :: cout <<“Hello world!” << 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 .