[英]“Embedding” a folder into a C/C++ program
我有一個存儲在.../lib/
中的腳本庫,我希望將其嵌入到我的程序中。 到目前為止,這聽起來很簡單:在Windows上,我使用Windows資源文件 - 在MacOS上,我將它們放入Resource
文件夾並使用適當的API來訪問當前的bundle及其資源。 在普通的Linux上,我不太清楚如何做到這一點......但是,無論如何,我想成為跨平台的。
現在,我知道有像IncBin( https://github.com/graphitemaster/incbin )這樣的工具,但它們最適合用於單個文件。 但是,我所擁有的甚至可能需要某種文件系統抽象。
所以這里是我做過的幾個猜測和估計。 我想知道是否有更好的解決方案 - 或者其他方面。
char
數組中讀取它的內容。 基本上,通過IncBin運行zip文件並將其作為緩沖區傳遞給MiniZ,讓我來處理它。 還有其他解決方案嗎? 謝謝!
我有同樣的問題,我通過找到相對於argv [0]的庫來解決它。 但這只有在你通過絕對路徑調用程序時才有效 - 即,不是通過shell中的$ PATH。 所以我通過〜/ bin中的單行腳本或搜索路徑中的任何其他目錄來調用我的程序:
exec / wherever / bin / program“$ @”
當程序運行時,argv [0]被設置為“/ wherever / bin / program”,並且它知道在“/ wherever / lib”中查找相關腳本。
當然,如果您直接安裝到標准位置,您可以依賴標准目錄結構,例如/ usr / local / bin / program用於可執行文件,/ etc / program用於相關腳本和配置文件。 上面的技術就是您希望能夠在任意位置安裝整個捆綁包的時候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.