2014-03-13 8 views
0

방금 ​​CodeBlocks (TDM-GCC-4.8.1에서 13.12)의 최신 버전을 설치 했으므로 이제 코드가 작동하지 않습니다. 이전 버전에서는 모든 것이 컴파일되어 완벽하게 실행되었지만 이제는 동일한 코드를 사용하여 컴파일되지만 런타임에 내 프로그램이 "작동을 멈췄다"고 말하고 -1073741510 (0xC0000005)을 반환합니다.SFML이 CodeBlocks에서 실행되지 않습니다. 13.12

내가 작업 한보다 복잡한 프로그램에서이 문제가 발생하여 SFML에서 예제를 실행하여 문제를 격리하고 똑같은 방식으로 나누어 보았습니다. SFML과 관련이 있지만 그 이유 또는 이유를 이해하지 못합니다.

#include <SFML/Graphics.hpp> 
int main() 
{ 
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!"); 
    sf::CircleShape shape(100.f); 
    shape.setFillColor(sf::Color::Green); 

    while (window.isOpen()) 
    { 
     sf::Event event; 
     while (window.pollEvent(event)) 
     { 
      if (event.type == sf::Event::Closed) 
       window.close(); 
     } 

     window.clear(); 
     window.draw(shape); 
     window.display(); 
    } 

    return 0; 
} 

이 호출 스택은 다음과 같습니다 :

코드입니다

#0 691C4AF9 sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)() (D:\MyDocs\DOCUME~1\C__~1\SFML2~1.0TE\SFML2T~1\bin\Debug\sfml-window-2.dll:??) 
#1 00401424 main() (D:\MyDocs\Documents\C++\SFML 2.0 Test\SFML 2 Test\main.cpp:5) 

사람이 왜 이런 일 또는 내가 그것을 고칠 수있는 방법 어떤 생각을 가지고 있습니까?

답변

2

SFML은 C++ 라이브러리이므로 컴파일러를 전환 할 때마다 recompile the library이 필요합니다. SFML에서 제공하는 미리 컴파일 된 바이너리는 TDM의 이전 버전 용이므로 TDM 4.8.1과 호환되지 않습니다. 도서관을 직접 만들면 더 오래 개발할수록 더 중요해질 것이므로 더 빨리 시작할수록 더 불리합니다. 입니다. 개인 보조 노트로

: 나는이 TDragon에 의한 노력에 감사하지만,이 없습니다 꽤 더 - 이동이이 TDM에 대한 specially modified의하지 않는 한 TDM 컴파일러 GCC의 change the default linking behavior는, 따라서, 실존의 모든 빌드 스크립트를 속보에 대해. 불행하게도 Code :: Blocks 커뮤니티 doesn't care at all. 따라서 가능할 때마다 사람들에게 MinGW Builds을 가리킬 필요성을 느낍니다.

관련 문제