2011-03-14 99 views
4

前幾天我升級到Xcode 4之前,世界上都是正確的。從那時起,我有無盡的問題讓事情按照他們應該的方式工作。我有一個關鍵的更新,我需要發佈。我試過了我能想到的所有設置,重新啓動,重新安裝Xcode,恢復到我的文件的舊版本,一切。在Xcode 4中連接靜態庫時遇到的問題

我的項目鏈接到三個靜態庫,包含在其他三個項目中。我已經使用標準流程來鏈接庫(將項目文件拖入我的項目中,將它們的產品添加爲目標依賴項,將lib --- .a文件添加到鏈接二進制庫文件階段)。實際上,對於模擬器或我的測試設備,使用Debug Build Configuration進行編譯時沒有問題。

當我使用發佈構建配置進行編譯時,或者當我嘗試存檔時,所有東西都會橫向偏移。我已經得到了很多不同的錯誤,這取決於我的設置,但大多數是在這個變化:

LD:警告:忽略文件 [...] /編譯/產品/調試-iphonesimulator/libGDataTouchStaticLib.a, 文件是專爲存檔是 沒有被鏈接的 架構的ARMv6 (ARMv6的)不確定的符號體系結構:
「_OBJC_CLASS _ $ _ GDataSpreadsheetData」, 從引用: objc級,裁判在ExportViewController.o

我不明白爲什麼它甚至在Debug-iphonesimulator目錄中查找產品(我發誓,我鏈接的所有東西都顯示在Finder中,位於正確的Release-iphoneos目錄中)。

我已經把這個小時數搞定了,真的需要幫助!謝謝!

回答

1

請檢查這個問題和答案。我遇到同樣的問題,並修復它。

Xcode4 Linking Problem. File was built for archive which is not the architecture being linked (arm6)

+0

謝謝。我找到了一個不同的解決方案 - 只將.a從Release-iphoneos目錄複製到Debug-iphonesimulator目錄。換句話說,它成功了。然後出現了另一個我將分開討論的錯誤。 – ed94133 2011-03-15 07:57:10

+0

我有同樣的問題,但它是針對「mySettings」庫,這只是一個簡單的應用程序設置庫,包括我的應用程序,我所做的是去目標部分mySettings的庫,並更改「構建Active Architecture Only「從」是「更改爲」否「,之後構建完成。 – mracoker 2011-03-25 11:24:24

0

我從剝離的iPhoneOS目錄中。一個LIB文件複製到調試iphonesimulator目錄解決了這個問題,以便正確的文件會被發現,即使在Xcode中尋找錯誤的目錄中。

但是,後來我遇到了多應用程序捆綁提出here的問題 - 並且給出的解決方案對我無效。最後放棄並重新安裝Xcode 3.編譯,存檔並在20分鐘內上傳到App Store。在我給Xcode 4另一個鏡頭之前,會有一些時間和幾個點的發佈。

0

您可能在GDataTouchStaticLib目標的其他C標誌中啓用了-DGDATA_REQUIRE_SERVICE_INCLUDES = 1。如果是這樣,請在您的其他C標誌中添加-DGDATA_INCLUDE_SPREADSHEET_SERVICE = 1,以添加您需要的服務,在本例中爲電子表格。或者,如果您不希望GData需要包含服務(它將將所有內容都構建到靜態庫中,而不僅僅是您需要的),則只需刪除DGDATA_REQUIRE_SERVICE_INCLUDES標誌。