2014-01-19 53 views
0

我正在嘗試將bash項目編譯爲可分發的二進制文件。我試過shc,它的工作,除了我所有的source聲明被打破。我有大量source語句來保持代碼基礎更清晰,但是在編譯時使用shc時它們被破壞。我如何編譯我的bash項目,以便最終用戶可以只有一個文件,而不是擁有一堆.sh文件?如何完全編譯一個bash項目來分發?

回答

1

這聽起來像你缺少的是一個設施來擴大所有source陳述。如果您的代碼庫在使用這些語句時相當一致,那麼編寫它應該相當容易:只需編寫一個腳本將它們內聯展開即可。

或者,只需將所有腳本放入單個Zip文件或tar包中,然後告訴用戶提取該文件的內容,或者即使這太多,我相信您可以想象一種編碼方式將所有非主文件的內容壓縮到主文件底部的巨型註釋中,並在繼續之前提取它所需的內容。

或者,您知道,爲您的系統使用適當的安裝程序。爲RHEL或Debian軟件包或Windows MSI或其他軟件構建一個RPM ....

2

Shc是一個混淆器,不是編譯器。在一天結束的時候,它仍然會調用/ bin/sh或其他任何東西,併爲它提供原始腳本。它沒有絲毫的想法你的腳本實際上做了什麼。如果需要額外的文件來源,則必須在適當的位置提供。

您可能需要調查SHAR之類的內容。建立anarchive,然後用shc編譯它,如果你想的話。

相關問題