



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Go語言非main包編譯為靜態(tài)庫并使用的示例代碼Go語言項目中基本上都是以源碼的形式提供包,對公司或者企業(yè)而言,如果想要隱藏關(guān)鍵代碼怎么辦?
我們可以將Go的非main包編譯為靜態(tài)庫提供給用戶使用。下面以Windows為例,介紹一下如何將Go的非main包編譯為靜態(tài)庫,用戶又將如何使用。
筆者使用的VSCode,在終端中查看Go的環(huán)境變量,主要看GOROOT以及GOPATH,筆者的GOROOT在C:\ProgramFiles\Go。
二、常規(guī)工程
在任意地方新建一個目錄,假設(shè)為test,然后使用VSCode打開。我們創(chuàng)建如下3個工程文件:
main.go
packagemain
import(
"test/libDemo"
funcmain(){
libDemo.CallMe()
}
go.mod
moduletest
go1.16
libDemo.go
packagelibDemo
import"fmt"
funcCallMe(){
fmt.Println("libDemoBeCall...")
}
目錄結(jié)構(gòu)如下圖所示:
在main.go文件窗口,按F5運(yùn)行,可以看到正常執(zhí)行結(jié)果:
三、將libDemo編譯為靜態(tài)庫
1.移動libDemo
將libDemo目錄移動到${GOROOT}\src下,筆者的為C:\ProgramFiles\Go\src。此時再運(yùn)行會報錯了:
主要是import的路徑不對了,把test/去掉即可。
2.編譯libDemo為靜態(tài)庫
$goinstalllibDemo
此時可以在C:\ProgramFiles\Go\pkg\windows_amd64中看到相應(yīng)的靜態(tài)庫文件libDemo.a
3.將libDemo源碼從C:\ProgramFiles\Go\src移動走,即模擬用戶沒有源碼,只有靜態(tài)庫的情況。
此時再運(yùn)行又會出現(xiàn)找不到libDemo的錯誤,不能直接運(yùn)行了。
4.編譯main.go
進(jìn)入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.運(yùn)行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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二次根式的性質(zhì)教學(xué)設(shè)計
- 醫(yī)療廢棄物處理的可持續(xù)發(fā)展路徑
- 區(qū)塊鏈技術(shù)在智能合約中的應(yīng)用實例
- 健康產(chǎn)業(yè)人才激勵機(jī)制研究報告
- 健康教育與生活方式改變的關(guān)聯(lián)性研究
- 周圍血管病的臨床護(hù)理
- 醫(yī)療健康數(shù)據(jù)隱私保護(hù)HIPAA的核心要點
- 2025年5月山西省晉中市高考適應(yīng)訓(xùn)練考試物理試卷(含答案)
- 企業(yè)出兌合同范例
- 1000元租房合同范例
- 工程咨詢費(fèi)用支付協(xié)議
- 《工業(yè)機(jī)器人系統(tǒng)維護(hù)》試卷7及答案
- 《化學(xué)藥劑公司營運(yùn)資金管理問題和對策:以云南白藥公司為例(8800字論文)》
- 2024年(新課標(biāo)卷)高考物理試題評析交流 課件
- 2024江蘇省中等職業(yè)學(xué)校學(xué)業(yè)水平考試思想政治卷及答案
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-03-02-10 調(diào)飲師 人社廳發(fā)202338號
- 機(jī)器的征途:空天科技學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 統(tǒng)編版語文五年級下冊-16田忌賽馬-教學(xué)課件多篇
- 鋼結(jié)構(gòu)工程加工合同范本
- ASTM-D3359-(附著力測試標(biāo)準(zhǔn))-中文版
- 統(tǒng)編版五年級下冊語文第七單元情景化檢測題(含答案)
評論
0/150
提交評論