2016-02-23 133 views
0

這是我認爲的一個複雜問題。我只是想設置一個基本的SDL項目,我實際上是按照這個教程: http://lazyfoo.net/tutorials/SDL/01_hello_SDL/index2.phpSDL錯誤:ld返回1退出狀態並且沒有顯示錯誤

這是完整的構建日誌。

||=== Build: Debug in Drekirokr (compiler: GNU GCC Compiler) ===| 
||Warning: corrupt .drectve at end of def file| 
||error: ld returned 1 exit status| 
||=== Build failed: 1 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===| 

正如你所看到的,它讓我發現有一個錯誤,但沒有什麼據我所知。當然,ld返回1退出狀態是一個錯誤,但我已經在其他地方搜索該行,並且它總是有其他錯誤,如類名引用或類似的錯誤,對於他們我認爲事情得到通過解決其他錯誤來解決。 另一行,在def文件末尾處破壞.drective,有這個日誌的人似乎可以編譯得很好。在我的情況下,我不能。我試過編譯其他東西,並且我已經成功地編譯了一個「hello world」,它只使用stdio.h作爲printf。

這裏是我的代碼

#include <SDL.h> 
#include <stdio.h> 

int main(int argc, char* args[]) { 
    return 0; 
} 

我已經添加了搜索目錄和連接選項。我無法弄清楚什麼是錯的。

在此先感謝。

+1

什麼是您的構建系統?要解決此問題,可能需要構建系統文件,無論是IDE項目文件還是makefile或cmake等。 – iksemyonov

+0

請參閱:http://stackoverflow.com/questions/23240158/sdl-2-0-linking-error此外,我強烈建議您在爲其構建的操作系統(即Linux)中進行開發,在該操作系統中,您可以使用單個命令安裝編譯器和SDL,並且不存在像這樣的兼容性問題。 – iksemyonov

+0

是的,該鏈接解決了我的問題。沒有正確閱讀教程中的說明,實際的Mingw庫和頭文件在i686-w64-mingw32(對於32位)中。我非常感謝你的幫助@iksemyonov和在鏈接問題上回應的人。這個問題得到解答! –

回答

0

好吧我試過你的代碼,它爲我工作。 比我把代碼放到一個main.cpp文件中(所以沒有項目),並且 ld也返回了1個退出狀態。

所以嘗試把你的代碼放到一個項目文件!這應該解決它

1

感謝@iksemyonov,在這裏找到答案。 SDL 2.0: linking error

問題是在i686-w64-mingw32文件夾中找到了實際的Mingw庫,頭文件和二進制文件。 Libs例如不在lib/x86上。這些是MSVC。

我真的不知道爲什麼Mingw32下載不僅包含MSVC文件,而且也被它遮蔽了(在我看來,當然是)。

謝謝大家!

+0

很高興建議幫助。您可以接受自己的答案,以表明解決方案能夠正常工作,並且問題現在已經解決。 – iksemyonov

相關問題