2012-12-16 67 views
1

我想爲我想包含在其他iPhone應用程序中的某些可重用代碼創建一個靜態框架。我通過創建一個bundle來創建這個框架。我已經將twitter庫添加到這個框架中。問題是,twitter庫導入<libxml/xmlreader.h>需要libxml2.dylib,所以我已經將libxml2.dylib添加到了我的包的「Link Binary With Libraries」但編譯器給了我警告,代碼無法編譯。我收到了這些警告信息。將動態庫添加到我的框架給我警告

Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//Foundation.framework/Foundation) on link line 
Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//CoreFoundation.framework/CoreFoundation) on link line 
Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//CoreGraphics.framework/CoreGraphics) on link line 
Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//MessageUI.framework/MessageUI) on link line 
Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks//UIKit.framework/UIKit) on link line 
Unexpected dylib (/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/usr/lib/libxml2.dylib) on link line 
+1

如果您嘗試從您的框架中刪除動態庫並將其添加到最終目標上,會發生什麼? – giampaolo

回答

0

我認爲你需要這些框架添加到您的項目之一:

項目目標 - >構建階段 - >鏈接二進制與圖書館 - >添加這些框架的一個接一個。

+0

我已經這樣做了。 – SamehDos

3

我只是通過這個戰鬥,並找出它。將標準框架(如CoreFoundation.Framework)添加到自定義框架不會讓您在何處。這些警告將從您的自定義框架中移除後消失。然後,最終用戶在實現自定義框架時必須將所需的標準框架添加到他們的應用程序中。

+1

如果你想幫助用戶記得鏈接一些框架,你可以選擇在你的Framework頭文件中添加以下行的方法(儘管不是所有的開發者都喜歡它): '#ifndef __CFNETWORK__ #pragma message(「CFNetwork框架沒有在項目中找到,或沒有包含在預編譯頭文件中,一定要包含所有必需的框架。「) #endif' – maggix

0

如果你只是想消除這些警告,也許你可以試試這個:

項目目標 - >構建設置 - >鏈接帶有標準庫 - > NO

0

我SOVE這個問題通過這一步

Project target -> Build Settings -> Build Active Architecture Only (Debug) -> NO 
相關問題