一,
$(srcroot) :當前工程所在的目錄。
二,framework 的第三方庫,只是參與link,並不會 build 進你自己新建的 .a的binary,
所以,你的的專案必須同時引用 你自己的.a 和 這個.a引用的所有的地方 framework(.frameworkj結尾的)
同理,可以可以控制引用的第三方.a檔案不被打入新的.a,只要在靜態庫專案的binary裡刪除.a引用,但是是searchpath裡保留,一樣可以編譯通過,這樣可以避免耦合導致的多 framework衝突,特別是公用一些第三方基礎庫,比如 sdwebimage之類的
三,
還記得我們在學習c程式的時候,從c**到可執行檔案經歷的步驟是:
源** > 預處理器 > 編譯器 > 彙編器 > 機器碼 > 鏈結器 > 可執行檔案
在最後一步需要把.o檔案和c語言執行庫鏈結起來,這時候需要用到ld命令。原始檔經過一系列處理以後,會生成對應的.obj檔案,然後乙個專案必然會有許多.obj檔案,並且這些檔案之間會有各種各樣的聯絡,例如函式呼叫。鏈結器做的事就是把這些目標檔案和所用的一些庫鏈結在一起形成乙個完整的可執行檔案。
如果要詳細研究鏈結器做了什麼,請看:
那麼,other linker flags設定的值實際上就是ld命令執行時後面所加的引數。
下面逐個介紹3個常用引數:
-objc:加了這個引數後,鏈結器就會把靜態庫中所有的objective-c類和分類都載入到最後的可執行檔案中
-all_load:會讓鏈結器把所有找到的目標檔案都載入到可執行檔案中,但是千萬不要隨便使用這個引數!假如你使用了不止乙個靜態庫檔案,然後又使用了這個引數,那麼你很有可能會遇到ld: duplicate symbol錯誤,因為不同的庫檔案裡面可能會有相同的目標檔案,所以建議在遇到-objc失效的情況下使用-force_load引數。
-force_load:所做的事情跟-all_load其實是一樣的,但是-force_load需要指定要進行全部載入的庫檔案的路徑,這樣的話,你就只是完全載入了乙個庫檔案,不影響其餘庫檔案的按需載入
3 相機設定
上面乙個是正交投影乙個是透視投影,可以看到透視投影有乙個視點即焦點,所有光線匯集於此,與視平面 投影面 是有視距的,但是正交投影相機位置在視口面上並且在 所以我想我知道正交投影原理了,所有點沿著與相機朝向向量平行的打到視口所在平面上,如果區域小,就按比例縮放到視口那樣 如果區域比視口大的話,但他們在...
wxpython中設定radiobox相關使用
coding utf 8 import wxclass myframe wx.frame def init self wx.frame.init self,none,1,wxpython radiobox 演示 size 800,600 panel wx.panel self 第一種方法使用wx.r...
ActiveMQ中Session設定的相關理解
名詞解釋 p 生產者 c 消費者 服務端 p 或者 activemq服務 客戶端 activemq服務 或者 c 客戶端成功接收一條訊息的標誌是這條訊息被簽收。成功接收一條訊息一般包括如下三個階段 1 客戶端接收訊息 2 客戶端處理訊息 3 訊息被簽收。在不帶事務的 session 中,一條訊息何時...