



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Go語言非main包編譯為靜態庫并使用的示例代碼Go語言項目中基本上都是以源碼的形式提供包,對公司或者企業而言,如果想要隱藏關鍵代碼怎么辦?
我們可以將Go的非main包編譯為靜態庫提供給用戶使用。下面以Windows為例,介紹一下如何將Go的非main包編譯為靜態庫,用戶又將如何使用。
筆者使用的VSCode,在終端中查看Go的環境變量,主要看GOROOT以及GOPATH,筆者的GOROOT在C:\ProgramFiles\Go。
二、常規工程
在任意地方新建一個目錄,假設為test,然后使用VSCode打開。我們創建如下3個工程文件:
main.go
packagemain
import(
"test/libDemo"
funcmain(){
libDemo.CallMe()
}
go.mod
moduletest
go1.16
libDemo.go
packagelibDemo
import"fmt"
funcCallMe(){
fmt.Println("libDemoBeCall...")
}
目錄結構如下圖所示:
在main.go文件窗口,按F5運行,可以看到正常執行結果:
三、將libDemo編譯為靜態庫
1.移動libDemo
將libDemo目錄移動到${GOROOT}\src下,筆者的為C:\ProgramFiles\Go\src。此時再運行會報錯了:
主要是import的路徑不對了,把test/去掉即可。
2.編譯libDemo為靜態庫
$goinstalllibDemo
此時可以在C:\ProgramFiles\Go\pkg\windows_amd64中看到相應的靜態庫文件libDemo.a
3.將libDemo源碼從C:\ProgramFiles\Go\src移動走,即模擬用戶沒有源碼,只有靜態庫的情況。
此時再運行又會出現找不到libDemo的錯誤,不能直接運行了。
4.編譯main.go
進入main.go所在目錄,編譯main.go:
gotoolcompile-I"C:\ProgramFiles\Go\pkg\windows_amd64"main.go
在編譯時需要加入-I選項包含目錄路徑"C:\ProgramFiles\Go\pkg\windows_amd64",路徑中有空格需要加引號,編譯成功后會生成main.o
5.鏈接main.o
gotoollink-otest.exe-L"C:\ProgramFiles\Go\pkg\windows_amd64"main.o
-L選項指定鏈接時搜索的庫路徑,鏈接成功會生成test.exe
6.運行test.exe
可以看到正常輸出:
$./test.exe
libDemoBeCall...
如果我們把C:\ProgramFiles\Go\pkg\windows_amd64\libDemo.a刪除,再鏈接就會報錯:
C:\ProgramFiles\Go\pkg\tool\windows_amd64\link.exe:cannotopenfileC:\ProgramFiles\Go\pkg\windows_amd64\libDemo.a:openC:\Progra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年魚肉松香料項目市場調查研究報告
- 智能消防泡沫比例混合裝置行業深度調研及發展戰略咨詢報告
- 智能水污染監測器行業深度調研及發展戰略咨詢報告
- 智能真空控制器行業跨境出海戰略研究報告
- 熱致變色涂料企業制定與實施新質生產力戰略研究報告
- 智能手套觸覺反饋游戲控制器行業深度調研及發展戰略咨詢報告
- 智能海洋災害預警系統行業跨境出海戰略研究報告
- 環保動物膠國際貿易平臺行業深度調研及發展戰略咨詢報告
- 住建部 勘察合同范例
- 業務 居間合同范例
- 2025年北京市東城區九年級初三一模英語試卷(含答案)
- 支教培訓考試題及答案
- 2025-2030全球及中國游戲化行業市場現狀供需分析及投資評估規劃分析研究報告
- 功夫茶泡茶技巧
- 2025年高中學業水平考試政治知識點歸納總結(復習必背)
- 中央2025年國家民委直屬事業單位招聘48人筆試歷年參考題庫附帶答案詳解
- 2025年全國國家版圖知識競賽試題題庫
- 魔鏡洞察-數字解密 藥食同源生意下最香的成分與賽道終版
- 十一學校小升初入學測試數學真題及詳細解答
- 2025上半年廣西現代物流集團社會招聘校園招聘149人筆試參考題庫附帶答案詳解
- 出售東西合同樣本
評論
0/150
提交評論