2011-05-09 46 views
2

我正在開發使用ITK和VTK軟件,這一切都進行得非常順利。但是,我想將軟件部署到未安裝ITK或VTK的最終用戶計算機上。當我建立的軟件,而沒有安裝的ITK或VTK的機器上運行它,我得到的錯誤,如「無法加載libItkBasicFilters.dll」這是非常合情合理的 - 有機器上沒有這樣的DLL 。我如何可以將庫到我的可執行文件,使用戶不需要有這些DLL?

我不能期望我的所有用戶安裝ITK,使他們能夠運行我的軟件 - 我怎樣才能讓這個他們只需要運行我的可執行文件,他們可以享受軟件?恐怕我不太瞭解這些圖書館 - 所以如果你能給我任何想法,那將會非常有幫助。

+1

我沒有ITK和VTK的經驗。你知道他們是否有靜態庫版本?解決您的問題的簡單方法是靜態鏈接到這些庫。如果他們支持,應該在圖書館的文件中解釋如何做到這一點。 – 2011-05-09 13:14:25

+0

@Boaz:你還需要檢查你是否被允許*這樣做(在這種情況下是)。例如,LGPL許可證允許在任何許可證下動態鏈接到應用程序,但只有當應用程序本身被(L)GPL覆蓋時才允許靜態鏈接。 – 2011-05-10 05:46:47

回答

7

你有兩個選擇:

  1. 添加這些庫安裝到您的安裝程序並自動運行,如果在系統上找不到庫。這是通常如果你有一個安裝程序,並且是這種情況下的首選選項。
  2. 使用靜態版本的庫。由於庫使用BSD許可證,則允許這樣做(只是重新編譯爲靜態庫,如果你沒有這些的話)。但是,如果需要更新庫(需要更新.dll以修復bug或修復安全問題而不重新編譯依賴應用程序),則目標計算機上需要更多空間,並且需要重新安裝軟件,但是如果您希望用戶只讀取一個.exe並啓動它,這是唯一的選擇。
+0

非常感謝,這非常有幫助。 – 2011-05-11 11:33:37

相關問題