2009-11-22 14 views
4

我有兩個XCode項目:框架和客戶端應用程序。 我的應用程序依賴於我的框架,一切都正常工作 - 每次應用程序都重新編譯框架,項目構建路徑設置正確,這完全沒問題。將動態庫(.dylib)複製到框架(.framework)中

現在框架開始使用第三方dylib文件,並且它鏈接到dylib。 我甚至還添加了一個構建階段,將該庫複製到框架的資源目錄中。

當我試圖運行應用程序,一切都正確編譯,然後我得到這樣的:

使dyld:庫未加載:/usr/local/lib/libplplot.9.dylib 從引用:/用戶/ railsmaniac /項目/研究/積分>逼近/構建/調試/ XNMaths.framework /版本/ A/XNMaths 原因:沒有找到圖片

我怎樣才能解決這個問題? 將庫添加到客戶端應用程序的資源中並不能解決問題。 我可以將庫放到需要的位置,但我更願意將它保存在框架中。 這可能嗎?

+0

看起來我缺乏該庫的二進制文件:我已經下載了一個二進制文件.dylib,其中包含一些壓縮包,並在開發人員的博客中引用。現在它需要* libplplot.9 *不是libplplot,對吧? 如果我將它複製到/ usr/local/lib /中,它需要另一個dylib文件,這是用PLPlot軟件包編譯的,正如我所看到的。 我想我只是從PLPLot來源製作一個框架,它會更有用,框架可以很容易地打包到另一個framewowk :) – Nat

回答

3

看起來您的應用程序期望在系統的特定路徑上找到庫。如果您使用的是OS 10.5或更高版本,則可以使用新的@rpath功能來允許應用程序動態鏈接到庫。

有關詳細信息,請參見this post。它也顯示了這樣做的「舊」方式。

+0

謝謝你的答案。我有點新動態鏈接等,因爲我本身是一個Web開發人員:)但我清楚地理解這個概念。 現在有一個問題:它是應用程序項目問題還是框架?我想在使用它的所有應用程序的framweork中修復一次。那可能嗎? – Nat

+0

應該可以。我已經很久沒有這樣做了(幾年來還沒有開發原生的OS X框架),所以我不能給你更多的指針,而不是去討論那篇文章中的內容(它會工作,我在幾年前做過)。哦,接受,如果你對指針感到滿意;) – jkp

+0

我發佈了我的情況更新。是的,你回答很有幫助,再次感謝。 – Nat