go语言静态库的编译和使用方法
本文主要介绍go语言静态库的编译和使用方法,以windows平台为例,linux平台步骤一样,具体环境如下:
>echo%GOPATH% E:\share\git\go_practice\ >echo%GOROOT% C:\Go\ >tree/F%GOPATH%\src 卷work的文件夹PATH列表 卷序列号为0009-D8C8 E:\SHARE\GIT\GO_PRACTICE\SRC │main.go │ └─demo demo.go
在%GOPATH%\src目录,有demo包和使用demo包的应用程序main.go,main.go代码如下:
packagemain import"demo" funcmain(){ demo.Demo() }
demo包中的demo.go代码如下:
packagedemo import"fmt" funcDemo(){ fmt.Println("calldemo...") }
由于demo.go是在%GOPATH%\src目录下的一个包,main.go在import该包后,可以直接使用,运行main.go:
>gorunmain.go calldemo...
现在,需要将demo.go编译成静态库demo.a,不提供demo.go的源代码,让main.go也能正常编译运行,详细步骤如下:
1编译静态库demo.a
>goinstalldemo
在命令行运行goinstalldemo命令,会在%GOPATH%目录下生相应的静态库文件demo.a(windows平台一般在%GOPATH%\src\pkg\windows_amd64目录)。
2编译main.go
进入main.go所在目录,编译main.go:
>gotoolcompile-IE:\share\git\go_practice\pkg\windows_amd64main.go
-I选项指定了demo包的安装路径,供main.go导入使用,即E:\share\git\go_practice\pkg\win
dows_amd64目录,编译成功后会生成相应的目标文件main.o。
3链接main.o
>gotoollink-omain.exe-LE:\share\git\go_practice\pkg\windows_amd64main.o
-L选项指定了静态库demo.a的路径,即E:\share\git\go_practice\pkg\win
dows_amd64目录,链接成功后会生成相应的可执行文件main.exe。
4运行main.exe
>main.exe
calldemo...
现在,就算把demo目录删除,再次编译链接main.go,也能正确生成main.exe
>gotoolcompile-IE:\share\git\go_practice\pkg\windows_amd64main.go >gotoollink-omain.exe-LE:\share\git\go_practice\pkg\windows_amd64main.o >main.exe calldemo...
但是,如果删除了静态库demo.a,就不能编译main.go,如下:
>gotoolcompile-IE:\share\git\go_practice\pkg\windows_amd64main.go main.go:3:can'tfindimport:"demo"
以上就是go语言静态库的编译和使用方法,下次介绍动态库的编译和使用方法。
总结
到此这篇关于go语言静态库的编译和使用方法的文章就介绍到这了,更多相关go语言静态库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。