我試過在沒有運氣的情況下搜索一個很多(可能是因爲我沒有使用正確的技術術語)。我的問題主要是關於鏈接靜態庫,編譯和部署。在詳細介紹之前,我的可執行文件在我的系統上編譯得很好;主要問題是如何將這些解決方案部署爲其他人的工作解決方案。我已經寫了一個基本的使用OpenCV靜態庫的C++圖像處理exe文件(我使用項目>屬性>鏈接器>在VC++中鏈接這些文件>添加了附加的依賴關係,作爲標準)。我通過設置VC++選項指向正確的包含文件進行編譯...基本上,它都編譯得很好。我現在希望能夠在另一臺PC上部署它。我知道我需要發佈版本的exe +靜態庫...還有其他什麼?使用外部庫的OpenCV C++應用程序部署
一些庫依賴於使用libjpeg和libpng;我不認爲這些是標準的。此外,我已將鏈接器路徑設置爲相對靜態庫(例如resources/libs),因此它不依賴於系統,因此它知道在哪裏查找庫。基本的OpenCV數據結構工作正常(例如CvPoint),但是當我嘗試使用CvLoadImage加載圖像時,應用程序崩潰。如果我使用標準的ifstream fopen代替,我可以毫無問題地打開文件(但似乎無法將它帶入IplImage OpenCV image strut--有人知道如何做到這一點嗎?可能與IplImage-> imageData有關。) 。
非常感謝任何幫助。謝謝!
我建議改變你的標題 - 這是誤導性的,不要不要使用便攜式詞語部署 – 2010-10-12 17:58:22
您永遠不需要部署靜態庫(.lib),因爲它們已鏈接到您的可執行文件中。如果您使用動態庫(.dll),則需要部署。話雖如此,你有什麼錯誤? – 2010-10-12 18:00:47
如上所述,libs將鏈接到.exe中,不需要單獨部署。您可以使用Dependency Walker來確保您不會無意中鏈接到任何非系統DLL(這需要與您的.exe一起部署)。 – Nate 2010-10-12 18:22:14