我正在開發一個跨平臺的C++應用程序,並暫時我處理得到它在Linux下運行一個領域,我有一點經驗。這個應用程序使用像Poco和Boost這樣的第三方庫來舉幾個例子。我正在開發一個Ubuntu桌面版本,我已經動態構建了它們,它們的頭文件包含在usr/local/include中,而.so文件位於usr/local/lib目錄。
如果我要發佈這個程序是它足以只包我的源代碼(可執行文件)+報文頭和第三方庫或SO2的文件在應用程序的接收到他的機器上安裝這些庫,以及應用程序執行?部署Linux C++應用程序分配與第三方庫
0
A
回答
1
檢查許可證的第三方代碼。如果是GPL,請在下載時包含源代碼tarball。這很簡單,因爲它不會讓你以後對任何事情負責。否則,如果Debian/Ubuntu在六年後將其歸檔鏡像關閉了,您仍然有責任爲請求它的任何人提供源代碼。
然後考慮讓你的代碼放到一個獨立的Linux應用。你可以通過將你需要的所有共享庫放到你的目錄中。您可以選擇定義邊界的位置。你可能會決定你可以依靠系統的C庫,OpenGL,SDL等,而不需要捆綁這些。
然後創建一個使用$0
(即sh
變量,即腳本的全名)的shell腳本來找出它的運行位置。將LD_LIBRARY_PATH
設置爲dirname "$0"
,然後exec realprogram [email protected]
如果這樣做,您的代碼就可以在很長一段時間內在系統上運行。看看Quake 3是如何爲Linux打包的,它是這樣做的。
+0
所以糾正我,如果我錯了,用這種方式在我的例子可以繞過閱讀usr/local/include,因爲我無法在IDE或Makefile中找到一種方法,我發現這個文件夾從構建過程中排除 – dk13
相關問題
- 1. 部署小程序的第三方庫
- 2. 部署配置文件和第三方應用程式
- 3. linux C++應用程序部署
- 4. 使用第三方庫打包C#應用程序?
- 5. 將Web應用程序與第三方應用程序集成
- 6. 部署C#應用程序
- 7. 部署C#應用程序
- 8. 重新分配依賴於第三方庫的PyObjC應用程序
- 9. 閱讀第三方配置部分
- 10. 部署Linux CUDA應用程序
- 11. 在Linux上部署PyQt5應用程序
- 12. 谷歌雲端硬盤API - 分配配額的第三方應用程序
- 13. 第三方驅動程序簽署
- 14. 部署SQL 2008數據庫與C#應用程序
- 15. Maven:無法將第三方JAR部署到遠程存儲庫
- 16. 在C#安裝程序中安裝第三方應用程序
- 17. 在Android中使用第三方.a庫ndk應用程序
- 18. Yammer第三方應用程序訪問
- 19. 更改iOS應用程序名稱與Windows C#第三方程序
- 20. 如何使用第三方分發配置文件構建iOS應用程序
- 21. 您的第三方應用程序必須簽署才能與Quickbooks集成嗎?
- 22. 使用外部庫的OpenCV C++應用程序部署
- 23. UWP應用程序第三方SDK
- 24. 安卓第三方應用程序
- 25. 控制第三方應用程序
- 26. 第三方HTML5 .HTA應用程序?
- 27. iFrames中的第三方應用程序?
- 28. 啓動第三方應用程序
- 29. Cocos2d-JS +第三方應用程序
- 30. 打開第三方應用程序
爲什麼你認爲你需要與你的應用程序二進制分發CPP和頭文件? – IInspectable
首先閱讀所有使用的庫的許可證。 – deviantfan
作爲一個有幾個Linux發行版打包的人說話:只打包自己的代碼,然後提供清楚的文檔,說明必須安裝哪些依賴項來編譯和安裝自己的warez。如果您提供自己的RPM規格文件或任何APT需要做的等效物,作爲您自己的軟件包的一部分,請提供免費布朗尼積分。 –