我的應用程序需要libcurl的第7版,並在Lion上正常工作,但Snow Leopard上的libcurl.dylib版本無效(我需要*前綴* MKD命令)。 (1)應用程序文件夾,(2)內容文件夾,(3)MacOS文件夾和(4)應用程序文件夾中的副本, )資源文件夾,但沒有成功。甚至四個副本,每個文件夾一個。 (仍然到/ usr/lib。)強制OS X應用程序使用特定的libcurl.dylib
我也嘗試在Xcode 4.2中將「Runpath Search Paths」設置爲「。」,但這並沒有幫助。
因此,問題1是,我如何強制我的雪豹應用程序使用包含在包中的dylib? (安裝一個新的libcurl.dylib是不可能的 - 這個應用程序將進入Mac App Store。)
在實驗上,我將Snow Leopard系統上的/usr/lib/libcurl.dylib替換爲獅子,並與該應用程序的工作。所以我知道,如果我可以讓應用程序使用這個庫,它會工作正常。
我也試過建立一個靜態的libcurl.a,它工作(使用configure,make和make install),但試圖鏈接到應用程序仍然引用dylib。然後,我將靜態庫的名稱更改爲libcurl-static.a,但之後出現鏈接器錯誤,因爲其他dylib中未定義數十個符號。我試圖在我的構建中包含更多的dylib,以解決這些問題,但libcurl所需的dylib列表顯然很長。我試圖用otool找出需要的東西,但沒有一個選項讓我看到有用的東西。
問題#2是:如何將我的應用程序靜態鏈接到libcurl?我有一個解決方法,不能使用* MKD,如果該目錄已經存在,它忽略錯誤,但它涉及太多額外的FTP操作,效率低下。我的方法* MKD工作正常,是快速。)
不需要建議我去另一個FTP庫,因爲我已經想到了。真的不想,因爲libcurl在Lion上工作得很好。如果只有我可以讓它使用我在雪豹上運送的圖書館。
非常感謝#1。對於#2,我的問題不是關於如何獲取libcurl.a,而是關於如何讓所有引用的庫得到解決。 我決定libcurl方法不是我想要去的。將代碼切換到CFFTP,現在它在10.6和10.7上運行得非常好。 – 2012-02-20 19:14:16
通過列出它們來解決依賴關係 - 沒有隱式依賴關係解析,只有顯式的。這通常沒有問題,因爲通常在配置時或通過自我報告(例如'pkgconfig')完成。 – 2012-02-21 01:55:05