go语言静态库的编译和使用

本文主要介绍go语言静态库的编译和使用方法,以windows平台为例,linux平台步骤一样,具体环境如下:

在%GOPATH%\src目录,有demo包和使用demo包的应用程序main.go,main.go代码如下:

demo包中的demo.go代码如下:

由于demo.go是在%GOPATH%\src目录下的一个包,main.go在import该包后,可以直接使用,运行main.go:

现在,需要将demo.go编译成静态库demo.a,不提供demo.go的源代码,让main.go也能正常编译运行,详细步骤如下:

1 编译静态库demo.a

在命令行运行go install demo命令,会在%GOPATH%目录下生相应的静态库文件demo.a(windows平台一般在%GOPATH%\src\pkg\windows_amd64目录)。

2 编译main.go

进入main.go所在目录,编译main.go:

-I选项指定了demo包的安装路径,供main.go导入使用,即E:\share\git\go_practice\pkg\win

dows_amd64目录,编译成功后会生成相应的目标文件main.o。

3 链接main.o

-L选项指定了静态库demo.a的路径,即E:\share\git\go_practice\pkg\win

dows_amd64目录,链接成功后会生成相应的可执行文件main.exe。

4 运行main.exe

现在,就算把demo目录删除,再次编译链接main.go,也能正确生成main.exe:

但是,如果删除了静态库demo.a,就不能编译main.go,如下:

以上就是go语言静态库的编译和使用方法,下次介绍动态库的编译和使用方法。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180429G0HT9I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券