2013-10-02 1 views
0

내 코드 : 블록 sftwr에서 다음 코드를 컴파일하고 실행하려고 시도했지만 dll "libstdC++ 6 내가 당신에게 코드 샘플 및 디버그 모드에서 오류 로그 (F8)libstdC++ 6.dll로 코드를 실행하는 중 오류가 발생했습니다.

#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; 
} 

디버그 출력두고 "

을 .DLL :

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

CodeBlocks와 다른 버전의 GCC로 컴파일 된 Allegro 버전을 사용하는 것과 관련이있을 수 있습니다. [this forum thread]를 가리키는 [이 비슷한 질문 (Stack overflow)] (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

질문에 대한 의견을 따르면 문제는 CodeBlocks와 함께 제공되는 MinGW 4.7.1을 사용하는 반면 Allegro 바이너리는 MinGW 4.7.0 용으로 컴파일된다는 사실에서 비롯됩니다.

this forum thread을 가리키는 this similar question에 따르면 Allegro와 프로그램에 사용되는 컴파일러 버전은 동일해야합니다. 따라서, 다음 중 하나를 수행 할 수 있습니다

  • 다운로드는 MinGW 4.7.1 용으로 컴파일 된 알레그로의 버전,
  • 또는는 MinGW 4.7.1을 사용하여 직접 알레그로 컴파일,
  • 또는는 MinGW 4.7.0 대신를 사용 CodeBlocks와 함께 제공되는 버전.
+0

어디에서 Mingw 4.7.1을 얻을 수 있습니까? 나는 알레그로 웹 사이트에서 그것을 보지 못한다. – Shinobi

관련 문제