3 回答

TA貢獻1810條經驗 獲得超5個贊
如果您希望用戶編譯您的應用程序,并且該應用程序依賴于第三方包或資產,那么我建議您只針對受支持的平臺進行交叉編譯并提供二進制文件。
如果您有要與應用程序一起提供的資產(例如,配置文件),那么要么: a) 將二進制文件與資產一起打包并 tar/zip 壓縮;b) 對資產進行 base64 編碼并將它們編譯成二進制文件,請參見此處的一個很好的示例或 c) 創建一個為用戶執行此操作的構建/安裝腳本。
如果您能澄清您的確切要求,則更容易更直接地回答。

TA貢獻1895條經驗 獲得超3個贊
除了您可能在代碼中強加的任何依賴項之外,Go 二進制文件沒有運行時依賴項。(它的運行時庫包含在編譯的可執行文件中。)
因此,您可以按照從 C、C++ 或其他代碼編譯的任何其他靜態鏈接二進制文件的方式分發您的應用程序。
在 Linux 上,您可以為此使用適當的工具創建 .rpm 或 .deb 文件。在 Windows 上,您可以使用InnoSetup 之類的工具創建安裝程序。

TA貢獻2021條經驗 獲得超8個贊
Go 生成一個二進制文件。如果您的外部依賴項是編譯時依賴項,那么您的用戶無需擔心它們——它們已經被編譯進去了。
如果它們是運行時依賴項,那么它就是分發 exe 和相關資源的問題,任何安裝程序都可以為您完成 - 無論 exe 是否是用 Go 編寫的都無關緊要。編輯:如果它絕對必須是單個二進制文件,即使有運行時依賴項,那么您需要將運行時依賴項轉換為編譯時依賴項。一種方法是 elithrar 建議的方法。
從 Go 的角度來看,您唯一需要擔心的是您已經為用戶平臺編譯了代碼。
- 3 回答
- 0 關注
- 258 瀏覽
添加回答
舉報