C++ 使用libstdc+;运行代码时出错+;6.dll

C++ 使用libstdc+;运行代码时出错+;6.dll,c++,windows,dll,C++,Windows,Dll,我试图在我的代码上编译并运行以下代码::BLOCKS sftwr,但是 由于dll“libstdc++6.dll”存在一些问题,它无法正常运行 在调试模式(f8)下,我将代码列表和错误日志留给您 奇怪的是,在发布模式下,它似乎工作得很好(一个窗口出现了一段时间,然后自动关闭,在调试模式下,屏幕显示了一个蓝色,但最后它崩溃了)根据问题的注释,我猜问题是因为您使用了带有代码块的MinGW 4.7.1,而您的Allegro二进制文件是为MingW4.7.0编译的 根据哪一点,Allegro和您的程序使

我试图在我的代码上编译并运行以下代码::BLOCKS sftwr,但是 由于dll“libstdc++6.dll”存在一些问题,它无法正常运行

在调试模式(f8)下,我将代码列表和错误日志留给您


奇怪的是,在发布模式下,它似乎工作得很好(一个窗口出现了一段时间,然后自动关闭,在调试模式下,屏幕显示了一个蓝色,但最后它崩溃了)

根据问题的注释,我猜问题是因为您使用了带有代码块的MinGW 4.7.1,而您的Allegro二进制文件是为MingW4.7.0编译的

根据哪一点,Allegro和您的程序使用的编译器版本必须相同。因此,您可以:

  • 下载为MinGW 4.7.1编译的Allegro版本
  • 或者自己使用MinGW 4.7.1编译Allegro
  • 或者使用MinGW 4.7.0,而不是代码块提供的版本

这可能与使用Allegro的一个版本有关,该版本使用的GCC版本与提供的代码块不同。看看我的gcc版本是4.7.1,它带有代码::块。如何将新版本的gcc与CD::BLCKS一起使用?我试图加载最新版本,但我不了解windows网站上的加载过程。你必须安装MinGW(windows GCC端口)。@Shinobi你使用的是Allegro的预编译版本还是你自己编译的?我使用从Allegro网站下载的MinGW 4.7.0预编译版本5.0.10。我将它链接到CODE::Blocks我可以在哪里获得用于Mingw 4.7.1的?我没有在Allegro网站上看到它
#include <stdio.h>
#include <allegro5/allegro.h> 

int main(int argc, char **argv){ 
    ALLEGRO_DISPLAY *display = NULL;
    if(!al_init()) {
        fprintf(stderr, "failed to initialize allegro!\n");
        return -1;
    }
    display = al_create_display(640, 480);
    if(!display) {
        fprintf(stderr, "failed to create display!\n");
        return -1;
    }
    al_clear_to_color(al_map_rgb(0,0,0));
    al_flip_display();
    al_rest(10.0);
    al_destroy_display(display);
    return 0;
}   
Building to ensure sources are up-to-date
Selecting target: 
Debug
Adding source dir: c:\telechar\Codeblocks\Mesprojets\MonProjet\
Adding source dir: c:\telechar\Codeblocks\Mesprojets\MonProjet\
Adding file: c:\telechar\Codeblocks\Mesprojets\MonProjet\bin\Debug\MonProjet.exe
Changing directory to: c:/telechar/Codeblocks/Mesprojets/MonProjet/.
Set variable: PATH=.;C:\Telechar\CodeBlocks\MinGW\bin;C:\Telechar\CodeBlocks\MinGW;
C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;c:\Program Files (x86)\Common  Files\Ulead Systems\MPEG;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Windows Live\Shared
Starting debugger: C:\Telechar\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname  -quiet  -args c:/telechar/Codeblocks/Mesprojets/MonProjet/bin/Debug/MonProjet.exe 
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb (GDB) 7.5
Child process PID: 5536
Error while reading shared library symbols for c:\telechar\Codeblocks\Mesprojets\MonProjet\libstdc++-6.dll:
...
Error while reading shared library symbols for c:\telechar\Codeblocks\Mesprojets\MonProjet\libstdc++-6.dll:
Program received signal SIGSEGV, Segmentation fault.
In al_destroy_display () (c:\telechar\Codeblocks\Mesprojets\MonProjet\allegro-5.0.10-md.dll)
Continuing...
Program received signal SIGSEGV, Segmentation fault.
In al_destroy_display () (c:\telechar\Codeblocks\Mesprojets\MonProjet\allegro-5.0.10-md.dll)
Continuing...
[Inferior 1 (process 5536) exited with code 030000000005]
Debugger finished with status 0