2013-10-02 40 views
0

錯誤我試圖在我的代碼:: BLOCKS sftwr上編譯和運行下面的代碼,但是 它由於某些dll問題而無法正常運行「libstdC++ 6 .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:\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 

奇怪的是,在發行模式下,好像工作正常(窗口出現一段時間然後關閉自己,在調試模式下,屏幕顯示,但它有一個藍色的顏色,而不是最後,它崩潰)

+1

它可能與使用版本的Allegro編譯並使用與CodeBlocks提供的版本不同的GCC版本編譯。看到[這個類似的問題在堆棧溢出](http://stackoverflow.com/questions/14901930/allegro-5-crashs-on-calling-al-clear-to-colorallegro-color)它指向[這個論壇主題] (https://www.allegro.cc/forums/thread/610189) – Julien

+0

我的de gcc版本是4.7.1,它帶有code :: blocks。我怎麼能用CD :: BLCKS使用新版本的gcc?我試圖下載最新版本,但我不明白他們的網站上的donwloading過程 – Shinobi

+0

在Windows上,您必須安裝MinGW(Windows GCC端口)。 – Appleshell

回答

0

繼評論的問題,我猜問題來自您使用MinGW 4.7.1,與CodeBlocks一起提供,而您的Allegro二進制文件是爲MinGW 4.7.0編譯的。

根據this similar question指向this forum thread,用於Allegro和您的程序的編譯器版本必須相同。因此,您可以:

  • 下載編譯MinGW的4.7.1版本快板,
  • 或自己,編譯快板使用的MinGW 4.7.1,
  • 或使用MinGW的4.7.0,而不是CodeBlocks提供的版本。
+0

我可以在哪裏獲得Mingw 4.7.1的版本?我在Allegro網站上看不到它 – Shinobi

相關問題