我试图在我的代码上编译和运行以下代码::BLOCKS sftwr 但是由于dll"libstdc++6.dll的一些问题,它永远无法正常运行
我把代码清单和错误日志留在调试模式(f8)
#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:telecharCodeblocksMesprojetsMonProjet
Adding source dir: c:telecharCodeblocksMesprojetsMonProjet
Adding file: c:telecharCodeblocksMesprojetsMonProjetbinDebugMonProjet.exe
Changing directory to: c:/telechar/Codeblocks/Mesprojets/MonProjet/.
Set variable: PATH=.;C:TelecharCodeBlocksMinGWbin;C:TelecharCodeBlocksMinGW;
C:Program FilesCommon FilesMicrosoft SharedWindows Live;C:Program Files (x86)Common FilesMicrosoft SharedWindows Live;C:WindowsSystem32;C:Windows;C:WindowsSystem32wbem;C:WindowsSystem32WindowsPowerShellv1.0;c:Program Files (x86)Common FilesUlead SystemsMPEG;C:Program Files (x86)ATI TechnologiesATI.ACECore-Static;C:Program Files (x86)Windows LiveShared
Starting debugger: C:TelecharCodeBlocksMINGWbingdb.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:telecharCodeblocksMesprojetsMonProjetlibstdc++-6.dll:
...
Error while reading shared library symbols for c:telecharCodeblocksMesprojetsMonProjetlibstdc++-6.dll:
Program received signal SIGSEGV, Segmentation fault.
In al_destroy_display () (c:telecharCodeblocksMesprojetsMonProjetallegro-5.0.10-md.dll)
Continuing...
Program received signal SIGSEGV, Segmentation fault.
In al_destroy_display () (c:telecharCodeblocksMesprojetsMonProjetallegro-5.0.10-md.dll)
Continuing...
[Inferior 1 (process 5536) exited with code 030000000005]
Debugger finished with status 0
奇怪的是,在发布模式下,它似乎工作正常(一个窗口出现一段时间然后自行关闭,在调试模式下,屏幕显示,但它是蓝色的,最后,它确实崩溃了)
根据问题的评论,我想问题来自这样一个事实,即您使用了与代码块一起提供的 MinGW 4.7.1,而您的 Allegro 二进制文件是为 MinGW 4.7.0 编译的。
根据指向此论坛主题的类似问题,用于 Allegro 和程序的编译器版本必须相同。因此,您可以:
- 下载为 MinGW 4.7.1 编译的 Allegro 版本,
- 或者自己编译快板,使用 MinGW 4.7.1 ,
- 或使用 MinGW 4.7.0 而不是 CodeBlock 提供的版本。