2012-09-18 38 views
2
SDL框架

我有我的Xcode項目使用SDL框架麻煩,我的主要(所有有在此刻的項目)目前看起來是這樣的:有麻煩了使用上的XCode

#include <SDL/SDL.h> 
#include <iostream> 

int main(int argc, const char * argv[]) 
{ 
// insert code here... 
std::cout << "Hello, World!\n"; 
return 0; 
} 

而我正在收到建築時收到的錯誤:

Undefined symbols for architecture x86_64: "_main", referenced from: start in crt1.10.6.o (maybe you meant: __Z8SDL_mainiPPKc) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

它不會給我一個有關未找到框架的錯誤。並且我已經看到了周圍的Stackoverflow的這個問題,我確實發現一個人的OS在他們的錯誤位置有他們的框架。但我已經嘗試了所有的地方(/庫/框架& & /〜用戶名〜/庫/框架& & /系統/庫/框架),仍然沒有運氣。

附加信息: 但是,我在互聯網上搜索一下後發現,官方網站http://www.libsdl.org/download-1.2.php 沒有OSX版本的開發庫。儘管許多關於如何在OSX上使用SDL的教程都聲稱這些是必需的。

此外,我通過Xcode本身添加我的庫,而不是通過drag'ndrop。 Xcode似乎重新認識它。

如果有人能夠幫助,將會非常感激,對這個錯誤瘋狂。

UPDATE:

error

仍然沒有運氣,我接着下面這裏提供的解決方案的每一步。也許這個截圖有任何幫助。

main()函數已更正,但沒有幫助。我試圖改變頭文件的路徑,即時消失在這一個。有沒有人可能有任何替代品在xcode中構建這個?

UPDATE2:

的建議的工作,但是現在它給我這個警告,這不會讓我運行應用程序。

enter image description here

固定!我刪除了構建設置中的路徑。奇怪的是,我仍然不知道哪裏出了問題,無論哪種方式。非常感謝您的幫助!使我的一天!

+0

您是否正在使用「SDLmain」進行鏈接? – jrok

+0

你可以在命令行上運行'sdl-config --libs'嗎? –

+0

@jrok不,我似乎沒有必要在網上找到大多數教程,但是我已經嘗試過了,而且在我做完之後我仍然得到相同的錯誤。 – Samuel

回答

3

我看到三個可能的問題。第一個問題是如何在代碼中包含SDL.h。您應該包括SDL.h用下面的代碼:

#include "SDL.h" 

第二個可能的問題是你有沒有文件SDLMain.h和SDLMain.m添加到您的項目。這些文件對於在Mac OS X上編譯SDL代碼是必需的。這些文件位於SDL磁盤映像上的devel-lite文件夾中。

第三個可能的問題是您的項目沒有鏈接到Cocoa框架。 Mac版本的SDL使用Cocoa,因此您需要項目中的Cocoa框架。

下面的文章引導您完成一個Xcode 4項目的設置對於SDL:

Using SDL with Xcode 4

UPDATE

我注意到你如何定義的main()函數可能出現的問題。 char和*之間有一個空格,*和argv之間有一個空格,這可能會導致錯誤。我的SDL代碼中的main()函數的定義方式如下:

int main(int argc, char *argv[]) 
+0

感謝您的答覆,但是,這是我遵循的教程將SDL包括到我的項目(衆多之一)中,它給了我同樣的錯誤:( 也包含部分給我一個錯誤,它找不到SDL,在「SDL/sdl.h」沒有錯誤。我覺得這不是包含框架的錯誤。雖然我可能會誤解 – Samuel

+0

確保SDL框架是部分的目標鏈接二進制與庫生成階段您可能還需要將SDL框架的路徑添加到框架搜索路徑生成設置 –

+0

它已鏈接,並且路徑也沒有錯誤我張貼了錯誤的屏幕截圖,或許它可以向你展示更多的信息 – Samuel