2011-11-17 128 views
1

設立的Box2D與Cocos2D中我注意到其他幾個人也有類似的問題,但是這是一個有點奇怪......編譯錯誤在Xcode

我從SCODE 4.2和最新的cocos2d的新安裝幾周前。我已將包含Box2D的所有文件更改爲C++ .mm文件擴展名。我還爲appName/libs **設置了用戶頭部搜索路徑。

當我編譯要麼b2BroadPhase.cpp和/或b2CollideCircle.cpp丟失,或者更爲罕見,Box2d.h丟失。我已經檢查過,所有這些文件都位於我的應用程序目錄中的正確位置。

誰能告訴我爲什麼文件沒有找到,爲什麼丟失的文件數量隨機波動?

編輯:

好了,我顯然不明白標題搜索路徑......都是他們設計走向通常不會被搜索文件夾指向?如果我添加一個標題搜索路徑,那麼我得到200多個錯誤,說box2D文件無法找到。如果我不添加標題搜索路徑,我會得到1-3個錯誤,說明找不到文件。

+0

我不斷重複自己,但如果你要使用Kobold2D http://www.kobold2d.com,你不必擔心這種「設置第三方庫」的問題。 ;) – LearnCocos2D

+0

hehehe你說服了我,我會檢查Kobold2d爲我的下一個項目。我不喜歡通過中途跳船:) – Alex

+0

嘗試它沒有傷害。 ;)http:// kobold2d。com/x/zAMO – LearnCocos2D

回答

0

您的標題搜索路徑很可能是錯誤的。你介意發佈它是什麼? 如果你的Box2D的文件夾是在您的Xcode文件夾(在取景器的樣子),它應該是這樣簡單:

$(SRCROOT) 

$(SRCROOT)/Box2D 
+0

我的box2d文件夾位於我的應用程序目錄中。我會發布我的搜索路徑,但我不知道它們是什麼:/我設置的所有用戶頭標搜索路徑是AppName/libs/**。我注意到只是標題搜索路徑,我可以設置調試和發佈搜索路徑......是與它有什麼關係? – Alex

+0

不,只是去你的項目設置,搜索:用戶頭搜索路徑然後鍵入我的第一個例子上面。如果這不起作用,請輸入我的第二個示例,並讓我知道它是如何發生的。 –

+0

我已經嘗試過這兩個加$(SRCROOT)/ libs/Box2D和其他一些啓用遞歸,我仍然有同樣的問題:/ – Alex

1

你的問題是,你已經設置了「用戶頭搜索路徑「。但是,Box2D需要您在「標題搜索路徑」構建設置中指定路徑。這是因爲Box2D的是用C++風格的尖括號包含語句:

#include <Box2D/Dynamics/b2Body.h> 

如果不應該解決(或者全部)的問題(S),檢查:

如果假設相同的Box2D的路徑,因爲它是在cocos2d-iphone:

cocos2d-iphone/external/Box2d/Box2D 

那麼你的Box2D的頭文件搜索路徑必須指向

cocos2d-iphone/external/Box2d/Box2D 

您可能指定了「Box2d」文件夾而不是「Box2d/Box2D」文件夾。這也是一個常見的錯誤。

+0

嗯我已經試過這個,它仍然不工作。要清楚,我在啓動應用程序時從xcode菜單中指定了一個cocos2d/box2d應用程序,但我並沒有自己導入cocos2d。我的應用程序文件夾中有一個box2D文件夾和一個cocos2d文件夾。所以我要到我的box2D文件夾,地址是/ appname/appname/libs/Box2D,並且要到達cocos2d文件夾,地址是/ appname/appname/libs/Box2D。 – Alex

+0

對不起,/ appname/appname/libs/cococs2d爲cocos2d文件夾 – Alex

0

我的問題是我在一個帶「.m」擴展名而不是「.mm」的文件上有一個#import「Box2D.h」語句。更改文件擴展名(選擇文件,按回車,添加額外的「米」)擺脫了所有box2d錯誤。

希望這可以幫助別人!