我是靠谱客的博主 健康啤酒,最近开发中收集的这篇文章主要介绍go struct 静态函数_golang使用静态文件(.a文件)进行编译,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

程序的一般过程:编辑、编译、链接、运行。由于golang的一个项目源码都是开源的,我们很少去关心编译、链接的问题。如果在一个项目中使用了非开源的第三方库,此时怎么打包出来一个可执行的exe程序?

golang使用静态文件编译

使用go tool compile

golang使用静态文件链接

使用go tool link

//staticpkg/print.go

package staticpkg

import "fmt"

func Hello() {

fmt.Println("hello")

}

//运行 go install 会生成对应的.a文件

//修改print.go文件,去掉函数实现,

//main/main.go

package main

import (

"staticpkg"

)

func main() {

staticpkg.Hello()

}

//使用tool的compile命令编译当前项目

go tool compile -I $GOPATH/windows_amd64 main.go

//会生成一个main.o文件

//使用tool的link命令生成可执行文件

go tool link -o main.exe -L $GOPATH/windows_amd64 main.go

//会生成一个main.exe程序,直接运行会输出hello

//如果直接go run main.go此时没有任何输出

使用静态文件(.a文件)进行编译和链接时,只需要有对应的.a文件即可。但是.a文件是无法查看到对应包中的一些定义的,如果要使用.a文件进行开发,还需要一份对应的声明文件。

https://github.com/golangaccount/exporthead是一个简单的导出go package声明的项目,里面移除了函数的实现细节和type或interface中的非导出item

最后

以上就是健康啤酒为你收集整理的go struct 静态函数_golang使用静态文件(.a文件)进行编译的全部内容,希望文章能够帮你解决go struct 静态函数_golang使用静态文件(.a文件)进行编译所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部