Xcode添加靜態庫以及編譯選項配置常見問題

本文轉載至 http://www.cnblogs.com/Quains/archive/2013/08/22/3276425.html?


一,Xcode編譯出現Link錯誤,出現"duplicate symbols for architecture i386 clang"提示.
問題:鏈接時,項目有重名文件.
解決:
根據錯誤提示,做如下檢查:
1.Taraget->Build Settings->Link Binary With Libraries檢查是否有重復lib.
2.全工程搜索下重名文件,決定如何刪除.

二,關于Category位于靜態庫時,引用該靜態庫的工程使用Category,出現"unrecognized selector sent to class"提示.
問題:標準UNIX靜態庫與Objective-C之間Linker的差異.在標準的UNIX靜態庫內,linker symbol是依照每一個類別而產生的,但由于Category并沒有真正產生一個類別,所以出錯.
解決:
1.在該靜態庫的Taraget->Build Settings->Other Linker Flags->加上 -ObjC.
2.在使用該靜態庫的工程Taraget->Build Settings->Other Linker Flags->加上-all_load或-force_load.

三,編譯warning:ld: warning: directory not found for option '-L'.
問題:通常是Path問題.
解決:
Taraget->Build Settings->Library Search Paths 和 Framework Search Paths,刪掉編譯報warning的路徑即OK

四,引入(帶源碼的)靜態庫所需配置.
步驟:
1.Add Files to.. 加入靜態庫的.xcodeproj 文件,不要勾選Copy Items.. 選項。(可以先把源代碼項目先復制到使用項目文件夾下)
2.Target->Build Phases->Target Dependecies->加靜態庫 && Link Binary With Libraries->加靜態庫.
3.配置靜態庫頭文件路徑,在Taraget->Build Settings->User Header Search Paths->配上靜態庫的物理路徑.

[錯誤tips: 若出現加入的.xcodeproj無法展開,則在Xcode中關閉靜態庫項目即可]

PS:只有.a 和 .h的靜態庫,則直接拖入項目即可。

五,關于重構,解決跨層調用問題,
常用選擇:
1.傳參(包括靜態變量的使用)
2.傳回調
3.直接移動調用的代碼(若代碼出現在不適合的地方,移動類/方法/etc)

轉載于:https://www.cnblogs.com/Camier-myNiuer/p/4058346.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于并發概念的一些筆記

目錄1、基于鎖的并發數據結構1、并發計數器2、懶惰計數器3、并發鏈表4、并發隊列5、并發散列表總結2、條件變量使用(POSIX)生產者/消費者 (有界緩沖區問題)覆蓋條件擴展3、信號量使用二值信號量(鎖)0值信號…

MYSQL常見出錯代碼 mysql error number

1016錯誤:文件無法打開,使用后臺修復或者使用phpmyadmin進行修復。1044錯誤:數據庫用戶權限不足,請聯系空間商解決1045錯誤:數據庫服務器/數據庫用戶名/數據庫名/數據庫密碼錯誤,請聯系空間商檢查帳戶。105…

建立apk定時自動打包系統第三篇——代碼自動更新、APP自動打包系統

我們的思路是每天下班后團隊各成員在指定的時間(例如下午18:30)之前把各自的代碼上傳到SVN,然后服務器在指定的時間(例如下午18:30)更新代碼、執行ant 打包命令、最后將apk包存放在指定目錄(或者上傳指定ft…

對于線程并發模型與事件并發模型的思考

這里將以對話的形式進行: A: 普通的線程是可以被其他線程中斷掉的,而基于select、epoll的事件處理函數實際上是不可以被其他事件(線程)中斷的。 我這個理解對嗎? B: 圖片里的應該是對是否…

Cache 總結

這一文,讓我們分析一下,《淺談 Cache》 一文中的奇怪現象,事實上如今來看也并不奇怪了。在什么情況下 r1 和 r2 都為 0 呢?細致看代碼,你會發現,兩個線程分別被執行在不同的 CPU 核上,而且在線程…

c/c++常見類型轉換錯誤

文章目錄char轉int 高位符號擴展有符號int與無符號int比較關于一個bit的位域變量的取值范圍臨時變量溢出size_t死循環char轉int 高位符號擴展 int main() {char a 0x9A;int util;util (int)a;cout << a << endl;cout << util << endl;if (util >…

Javascript 裝載和執行

一兩個月前在淘寶內網里看到一個優化Javascript代碼的競賽&#xff0c;發現有不少的人對Javascript的執行和裝載的基礎并不懂&#xff0c;所以&#xff0c;從那天起我就想寫一篇文章&#xff0c;但一直耽擱了。 首先&#xff0c;我想說一下Javascript的裝載和執行。通常來說&am…

java sundry tips

1.關于Arrays 記得binarySearch方法返回的int 類型的數值的含義。 If the array contains multiple elements with the specified value, there is no guarantee which one will be found. 而且當查找數小于數組中任何一個數時返回-1 &#xff0c;當查找數大于數組中任何…

c++常見的10個類對象問題

文章目錄1、對象的淺復制2、構造函數中的操作符重載3、拷貝構造函數不能模板化4、析構函數未捕獲異常導致coredump5、構造函數拋出異常6、基類析構函數非虛導致內存泄漏7、刪除void*指針引發內存泄露8、成員函數尾部缺失const9、使用memset初始化class10、對象向下轉換失敗1、對…

Ubuntu 14.10 -- 異次元軟件世界

Ubuntu 14.10 中文桌面版/服務器正式版下載 - 華麗免費易于入門的 Linux 操作系統 [ 系統工具 - Linux // 2014-10-25 ]一說到 Linux&#xff0c;就不得不提目前最紅火的 Ubuntu 發行版了&#xff01;它擁有絢麗的界面&#xff0c;甚至跟以時尚為賣點的 Mac OSX 相比也有過之而…

maven 概念

這里maven倡導約定優于配置&#xff0c;maven的約定就是以下目錄結構src/main/java 下存放java類src/main/webapp 下存放頁面文件(需要手動創建)src/main/resources 下存放資源文件src/test/java 下存放單元測試代碼src/test/resources 下存放測試資源文件 Maven運行的生命周期…

System Design筆記:在線售票系統設計

文章目錄何為在線售票系統&#xff1f;系統目標和要求1、功能要求2、非功能性需求3、設計注意事項4、容量估算5、系統API1.SearchMovies2.ReserveSeats6、數據庫設計7、高級設計8、細節模塊設計9、流程服務器如何跟蹤所有尚未預訂的active預訂&#xff1f;服務器如何跟蹤所有等…

Response.Write具體介紹

問題一&#xff1a; Response.Write 后連接Response.Redirect &#xff0c;則Response.Write無法顯示&#xff0c;直接跳轉入Response.Redirect 的頁面。 解決方案&#xff1a; Response.Write("<script langugejavascript>alert(成功改動); window.location.hrefin…

SharePoint通過IP地址訪問

問題&#xff1a;SP站點通過計算機名稱可以訪問&#xff0c;但不能通過IP地址訪問 解決方案&#xff1a;打開SharePoint2010管理中心》應用程序管理》配置備用訪問映射》編輯公用 URL 備用訪問映射集&#xff1a;選擇要映射的網站集 默認:http://計算機名 Intranet &#xff1a…

公有云與私有云的差別(轉)

公有云與私有云的差別 發現每一個公司對私有云、公有云的定義都不一樣&#xff0c;能夠從公有云與私有云的差別上理解這個概念。下面轉載網絡上一個比較淺顯的解釋&#xff1a; 差別1&#xff1a;從云的建設地點劃分&#xff0c;公有云——互聯網上公布的云計算服務&#xff1b…

流媒體協議初探(MPEG2-TS、RTSP、RTP、RTCP、SDP、RTMP、HLS、HDS、HSS、MPEG-DASH)

目錄一、綜述需求分析協議定制二、MPEG2-TS協議三、RTSP協議、RTP、RTCP、SDPRTSPRTP、RTCP、SDP四、RTMP五、HLS、HDS、HSSHLSHDS和HSS六、MPEG-DASH協議具體內容應用七、流媒體服務器流媒體服務器的功能與挑戰客戶端支持協議支持應用場景應用特點擴展技術廣告投放錄屏其他一、…

eclipse偶爾會反映遲鈍,直接無視其報錯

比如&#xff0c;你在web.xml中配置了什么東西&#xff0c;在有的時候不一定就會立即被eclipse察覺到&#xff0c;即便你的配置正確了&#xff0c;甚至重啟了幾次服務器&#xff0c;它仍然給你報錯 比如說&#xff0c;剛才我在web.xml中配置了一個taglib&#xff0c;并且tld文件…

Qos(Quality of Service)

QOS&#xff08;即Quality of Service&#xff0c;服務質量&#xff09;主要指網絡環境下服務滿足用戶的程度&#xff0c;在視頻服務的語境下也可認為是Quality of Streaming&#xff0c;即流媒體服務的質量。通常&#xff0c;QOS可以由一系列指標表達&#xff0c;如傳輸的速度…

Popline:帥氣的浮動 HTML5 文本編輯器工具欄

Popline 是一個基于 HTML5 實現的富文本編輯器工具欄&#xff0c;設計靈感來自 PopClip &#xff0c;相比傳統的文本編輯器工具&#xff0c;Popline 能夠浮動在編輯的文本周圍&#xff0c;操作起來十分方便。 您可能感興趣的相關文章Metronic – 基于 Bootstrap 響應式后臺管理…

C#反射Assembly 具體說明

1、對C#反射機制的理解 2、概念理解后&#xff0c;必須找到方法去完畢&#xff0c;給出管理的主要語法 3、終于給出有用的樣例&#xff0c;反射出來dll中的方法 反射是一個程序集發現及執行的過程&#xff0c;通過反射能夠得到*.exe或*.dll等程序集內部的信息。使用反射能夠看到…