2013-11-25 77 views
0

我在Windows 8.1計算機上使用帶有Code :: Blocks 12.11的SFML 1.6。我一直有問題,所以我做了一個非常簡單的測試程序,它看起來像這樣:使用Code :: Blocks在第一次調用時SFML崩潰

#include <iostream> 
#include <SFML/System.hpp> 
#include <SFML/Window.hpp> 
#include <SFML/Graphics.hpp> 

int main(){ 
    std::cout<<"Start"<<std::endl; 
    sf::Sprite test; 
    std::cout<<"End"<<std::endl; 
    return 0; 
} 

當我嘗試運行此它打印開始,然後崩潰。我檢查了我的鏈接器設置,我認爲它們是正確的,因爲它編譯得很好,沒有錯誤或警告。有什麼我失蹤?

+0

更重要的是:你使用的是什麼編譯器/鏈接器?什麼是你收到的崩潰消息?如果您使用Visual C++,則很可能使用了錯誤的庫文件。 – Mario

+0

Code :: Blocks 12.11使用Mingw GCC GNU編譯器4.8(或者在那裏的某個地方,我將在稍後檢查)並且窗口剛剛凍結,並且窗口彈出一個窗口,表示程序沒有響應 – Chachmu

+0

您應該明確更新到SFML 2.x,SFML 1.6已經超過1000次提交,有嚴重的錯誤,永遠不會被修復,並且缺乏良好的構建系統。使用每個新版本的編譯器,都需要重新編譯SFML,因此如果您沒有這樣做,它將無法工作。 – Lukas

回答

2

我實際上錯過了運行SFML 1.6的事實。我用GitHub的最新版本試過了你的代碼,它運行得很好。這是1.6中的一些錯誤,或者你在別的地方做錯了什麼(除非你自己創建一個,否則你不應該看到任何程序窗口)。

嘗試從downloads page下載最新版本(2.1),並查看是否崩潰。現在我想它由於不兼容性提到in this question/answer而崩潰。嘗試從命令行運行g++ -v以確定您正在運行的GCC的確切版本。

+0

我只是想升級到SFML 2.1,感謝您的幫助! – Chachmu