首页 文章

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

提问于
浏览
1

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

MingW的

我在环境变量中设置了 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'

类似地,有许多错误和未定义的引用 - fwprintfwprintfstd:cout 等 .

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

这是我正在运行的代码:

#include <iostream>

using namespace std;

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

2 回答

  • 2

    如果您不需要64位支持,请考虑下载"codeblocks-12.11mingw-setup.exe"
    它包含自己的32位mingw,并为您预先配置了一切 .

    否则,如果你仍然需要编译amd64应用程序: -
    假设您解压缩到D:\ Mingw64,在"Tool Chain Executables"选项卡下,将"Compiler's Installation Directory"设置为"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\
    

    单击"Search directories"选项卡到中间左侧"Toolchain Executables"
    添加以下路径: -

    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
    

    最后一件事 - >记得将这些设置保存到磁盘!
    如果在测试这个新配置时它崩溃了,你可能希望你有!
    通过"File->Save Everything"执行此操作(我认为)或重新启动代码:: blocks ... without another instance running .

    尝试编译某些内容然后分享结果

  • 0

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

    (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 .

相关问题