1

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

我已经mingw64\bin在环境变量中设置了路径。此外,在 Code::Blocks 编译器设置中,我为所有ToolChain Executables设置了路径。MingW bin 路径中有两个gcc 。一个是 -另一个是 - 。C++ 编译器、静态和动态库的链接器相同。现在,当我尝试构建一个简单的Hello World文件时,它会显示一些错误:gcc.exex86_64-w64-mingw32-gcc.exe

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同样, - 、wprintfstd:cout等也有许多错误和未定义的引用。

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

这是我正在运行的代码:

#include <iostream>

using namespace std;

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

2 回答 2

2

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

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

单击左侧的“搜索目录”选项卡“工具链可执行文件”
添加以下路径:-

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 ...而不运行另一个实例

尝试编译一些东西然后分享结果

于 2013-05-26T05:00:53.597 回答
0

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

(1) std::cout << "你好世界!" << 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) 尝试使用标志/参数“-m32”和“-m64”分别编译 32- 和 64-big。

于 2014-09-23T18:46:35.630 回答