我正在嘗試將bash項目編譯爲可分發的二進制文件。我試過shc,它的工作,除了我所有的source
聲明被打破。我有大量source
語句來保持代碼基礎更清晰,但是在編譯時使用shc
時它們被破壞。我如何編譯我的bash項目,以便最終用戶可以只有一個文件,而不是擁有一堆.sh
文件?如何完全編譯一個bash項目來分發?
0
A
回答
1
這聽起來像你缺少的是一個設施來擴大所有source
陳述。如果您的代碼庫在使用這些語句時相當一致,那麼編寫它應該相當容易:只需編寫一個腳本將它們內聯展開即可。
或者,只需將所有腳本放入單個Zip文件或tar包中,然後告訴用戶提取該文件的內容,或者即使這太多,我相信您可以想象一種編碼方式將所有非主文件的內容壓縮到主文件底部的巨型註釋中,並在繼續之前提取它所需的內容。
或者,您知道,爲您的系統使用適當的安裝程序。爲RHEL或Debian軟件包或Windows MSI或其他軟件構建一個RPM ....
2
Shc是一個混淆器,不是編譯器。在一天結束的時候,它仍然會調用/ bin/sh或其他任何東西,併爲它提供原始腳本。它沒有絲毫的想法你的腳本實際上做了什麼。如果需要額外的文件來源,則必須在適當的位置提供。
您可能需要調查SHAR之類的內容。建立anarchive,然後用shc編譯它,如果你想的話。
相關問題
- 1. 如何完全發佈Visual C#項目?
- 2. 如何編譯bash?
- 3. 如何編譯這個項目
- 4. netbeans的maven項目在每次運行時都完全編譯
- 5. 如何使用Cairngorm框架來編譯這個開源項目?
- 6. Xcode,我如何完全重命名一個項目?
- 7. 如何完全刪除一個GRUNT項目
- 8. 如何在.NET中將一個項目編譯爲多個dll
- 9. 如何以編程方式編譯和編譯當前項目中的另一個c#項目
- 10. 編譯一個項目,其中有sharekit
- 11. 在項目中只編譯一個類
- 12. msdev批量編譯一個C#項目
- 13. 是否有一個gradle腳本來編譯eclipse的android項目?
- 14. 如何使用另一個模塊的調試類來編譯Gradle子項目
- 15. 如何完全更改Xcode項目?
- 16. 如何完全刪除團隊項目
- 17. 如何完全清理我的項目?
- 18. 用MSBuild編譯一個csproj編譯引用的項目嗎?
- 19. Arduino:如何完成一個項目?
- 20. 如何添加symfony 2主安全來完成項目
- 21. bash可編程選項卡完成增量目錄完成
- 22. 如何同時爲.Net 3.5和4編譯一個項目
- 23. 如何使用Ant編譯和jar一個Android項目?
- 24. 如何運行一個編譯的java項目
- 25. 編譯來自Java的maven項目
- 26. 使用Travis CI來編譯C++項目
- 27. 添加一個Maven項目到Eclipse編譯項目
- 28. 從另一個項目編譯Visual Studio 2010項目
- 29. Buildr - 編譯項目,另一個項目的創建罐子
- 30. UpdatePanel中的CheckboxList觸發完全回發,當一個項目被選中