編譯引數-ObjC的說明
原文連結:http://blog.csdn.net/gaoyp/article/details/38707117
一些第三方庫裡對系統庫的類加了category,
這時,就需要使用編譯引數:-ObjC,這樣第三方庫中對系統類作的擴充套件方法才能在工程中使用。
但是使用-Objc後,會產生兩個問題:
1、undefined symbols
2、duplicate symbol
undefined symbols 說明工程中沒有引入第三方庫引用的庫。
如果不加-ObjC引數,則在編譯時不會出錯,但執行時用到了沒引用庫的方法,則系統會崩潰。
這個問題好解決。只要找到缺的庫,引入工程就可以了。
duplicate symbol的問題就不好解決了,說明第三方庫中的類名和工程中的類名,或其它第三方庫中的類名重名了。
最常見的比如Reachability這個類,如果第三方庫中引用了,自己的工程中也引用了,就會報duplicate symbol。
如果引用的第三方庫沒有原始碼,就只能將自己工程中的重名類重新命名了。
應對上面的問題,如果自己要製作一個庫的話,要注意兩點:
1、避免對系統類加category,這樣,別人用你的庫時,不加ObjC引數也可以用你的庫。
2、如果庫中用到了其它的第三方的原始碼,尤其是用的比較普遍的,如Reachability,一定一定要對
這些類重新命名,最常見的作法就是給類名加個字首。以避免別人用你的庫時,產生duplicate symbol的問題。
相關文章
- objc物件說明OBJ物件
- mysqldump引數說明MySql
- TOP引數說明
- Nginx的gzip配置引數說明Nginx
- RK3399 android編譯說明Android編譯
- php編譯引數PHP編譯
- 關於支援OPenACC的編譯器說明編譯
- Oracle Table建立引數說明Oracle
- GoldenGate HANDLECOLLISIONS引數使用說明Go
- linux常用核心引數說明Linux
- 3568F-Qt工程編譯說明QT編譯
- mydumper和myloader引數使用說明
- makefile中的一些引數說明
- ABAP-BITMAP的命令引數的使用說明
- Mysql my.cnf部分引數說明MySql
- /etc/sysctl.conf部分引數說明
- mysql relay log相關引數說明MySql
- Azure Blob (三)引數設定說明
- 所有初始化引數說明(轉)
- pytest(10)-常用執行引數說明
- 關於xtrabackup --slave-info引數的說明
- 資料泵的TRANSFORM引數說明及使用ORM
- PHP 編譯引數儲存PHP編譯
- Nginx編譯引數大全 configure引數中文詳解Nginx編譯
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- MySQL Galera cluster叢集常用引數說明MySql
- MogDB 2.1.1 初始化引數概要說明
- 介紹tomcat Connector 引數優化說明Tomcat優化
- pt-online-schema-change使用引數說明
- 【cartographer_ros】七: 主要配置引數說明ROS
- 模板引數,模板分離編譯編譯
- 插曲:Kafka的生產者原理及重要引數說明Kafka
- PHP中$_SERVER的常用引數與說明——收錄篇PHPServer
- 關於 navigator.mediaDevices.getUserMedia 的輸入引數說明dev
- C10-05-1-Nmap常用引數說明
- 【譯】Ruby2.6的JIT功能,編譯和解釋型語言的相關說明編譯
- PHP編譯安裝之Configure引數PHP編譯
- Linux下nginx編譯安裝教程和編譯引數詳解LinuxNginx編譯
- Webots和ROS的使用說明(譯)WebROS