



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Go語言非main包編譯為靜態(tài)庫并使用的示例代碼Go語言項(xiàng)目中基本上都是以源碼的形式提供包,對公司或者企業(yè)而言,如果想要隱藏關(guān)鍵代碼怎么辦?
我們可以將Go的非main包編譯為靜態(tài)庫提供給用戶使用。下面以Windows為例,介紹一下如何將Go的非main包編譯為靜態(tài)庫,用戶又將如何使用。
筆者使用的VSCode,在終端中查看Go的環(huán)境變量,主要看GOROOT以及GOPATH,筆者的GOROOT在C:\ProgramFiles\Go。
二、常規(guī)工程
在任意地方新建一個(gè)目錄,假設(shè)為test,然后使用VSCode打開。我們創(chuàng)建如下3個(gè)工程文件:
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.移動(dòng)libDemo
將libDemo目錄移動(dòng)到${GOROOT}\src下,筆者的為C:\ProgramFiles\Go\src。此時(shí)再運(yùn)行會(huì)報(bào)錯(cuò)了:
主要是import的路徑不對了,把test/去掉即可。
2.編譯libDemo為靜態(tài)庫
$goinstalllibDemo
此時(shí)可以在C:\ProgramFiles\Go\pkg\windows_amd64中看到相應(yīng)的靜態(tài)庫文件libDemo.a
3.將libDemo源碼從C:\ProgramFiles\Go\src移動(dòng)走,即模擬用戶沒有源碼,只有靜態(tài)庫的情況。
此時(shí)再運(yùn)行又會(huì)出現(xiàn)找不到libDemo的錯(cuò)誤,不能直接運(yùn)行了。
4.編譯main.go
進(jìn)入main.go所在目錄,編譯main.go:
gotoolcompile-I"C:\ProgramFiles\Go\pkg\windows_amd64"main.go
在編譯時(shí)需要加入-I選項(xiàng)包含目錄路徑"C:\ProgramFiles\Go\pkg\windows_amd64",路徑中有空格需要加引號,編譯成功后會(huì)生成main.o
5.鏈接main.o
gotoollink-otest.exe-L"C:\ProgramFiles\Go\pkg\windows_amd64"main.o
-L選項(xiàng)指定鏈接時(shí)搜索的庫路徑,鏈接成功會(huì)生成test.exe
6.運(yùn)行test.exe
可以看到正常輸出:
$./test.exe
libDemoBeCall...
如果我們把C:\ProgramFiles\Go\pkg\windows_amd64\libDemo.a刪除,再鏈接就會(huì)報(bào)錯(cuò):
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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人類疾病學(xué)概論考試題含答案
- 2025應(yīng)屆生在簽訂勞動(dòng)合同過程中應(yīng)注意什么細(xì)節(jié)
- 代理銷售協(xié)議規(guī)定
- 浙江國企招聘2025寧波前灣產(chǎn)業(yè)集團(tuán)有限公司第1批次招聘10人筆試參考題庫附帶答案詳解
- 2025貴州高速公路集團(tuán)有限公司招聘77人筆試參考題庫附帶答案詳解
- 2025招商新檢及成員公司招聘(53人)筆試參考題庫附帶答案詳解
- 2025山東滕州市悟通香料有限責(zé)任公司省博士后創(chuàng)新實(shí)踐基地招聘筆試參考題庫附帶答案詳解
- 2025上半年貴州畢節(jié)市納雍縣鴿子花農(nóng)業(yè)有限公司招聘10人筆試參考題庫附帶答案詳解
- 紡織檢測領(lǐng)域的發(fā)展趨勢試題及答案
- 紡織工程師證書考試常見誤區(qū)試題及答案
- 2025年全國國家版圖知識(shí)競賽試題題庫
- 魔鏡洞察-數(shù)字解密 藥食同源生意下最香的成分與賽道終版
- 十一學(xué)校小升初入學(xué)測試數(shù)學(xué)真題及詳細(xì)解答
- 2025上半年廣西現(xiàn)代物流集團(tuán)社會(huì)招聘校園招聘149人筆試參考題庫附帶答案詳解
- 出售東西合同樣本
- 2025年4月浙江省嘉興市嘉善縣初中教學(xué)質(zhì)量調(diào)研中考一模數(shù)學(xué)卷(原卷版+解析版)
- 新疆維吾爾自治區(qū)體廢物動(dòng)態(tài)信息管理平臺(tái)操作手冊
- 物流園區(qū)發(fā)展模式-全面剖析
- XX公司事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度1
- 附件6工貿(mào)高風(fēng)險(xiǎn)企業(yè)高危領(lǐng)域較大以上安全風(fēng)險(xiǎn)管控清單
- 國際貿(mào)易公司后勤管理崗位職責(zé)
評論
0/150
提交評論