我已經用C++構建了一個應用程序,該應用程序與第三方共享庫(如opencv)鏈接。現在我需要打包這個應用程序並將其作爲tar文件重新分發給用戶,而無需安裝和編譯第三方依賴項。在Linux/Ubuntu中編譯諸如opencv之類的庫是一個非常痛苦的過程。C++封裝:查找共享庫依賴關係
現在我想要找到庫的所有特定模塊都與可執行文件鏈接的內容,並將它們包含在分發tar中。我不想包括整個圖書館,因爲焦油的大小會爆炸。
僅僅包含由ldd
命令檢測到的庫是否足夠了?任何指導或提示/起點將有幫助
我已經用C++構建了一個應用程序,該應用程序與第三方共享庫(如opencv)鏈接。現在我需要打包這個應用程序並將其作爲tar文件重新分發給用戶,而無需安裝和編譯第三方依賴項。在Linux/Ubuntu中編譯諸如opencv之類的庫是一個非常痛苦的過程。C++封裝:查找共享庫依賴關係
現在我想要找到庫的所有特定模塊都與可執行文件鏈接的內容,並將它們包含在分發tar中。我不想包括整個圖書館,因爲焦油的大小會爆炸。
僅僅包含由ldd
命令檢測到的庫是否足夠了?任何指導或提示/起點將有幫助
通過其定義「ldd - 打印共享對象依賴關係」。此外,我個人確認它的工作原理,因爲我一直在專業項目中使用它。
此外,你可以在這裏檢查相同的問題和答案。 https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run
ldd
命令可用於顯示可執行文件(或庫)鏈接到的庫。
我提示它適用於我(在添加所有與ldd的依賴關係之後)是在virtualBox中安裝一個新的linux並嘗試配置tar,因爲我會是最終用戶。這樣你就可以檢查一切正常。
不要忘記檢查你是否被允許重新分配他們,閱讀他們的許可證。 [OpenCV允許你這樣做](http://opencv.org/license.html)。 – Berriel