当前位置 博文首页 > go开发中引用静态库.a文件的方法

    go开发中引用静态库.a文件的方法

    作者:archmage199 时间:2021-02-13 06:28

    前言

    我使用goland开发,下面都是用goland做演示

    一、生成demo.a

    新建一个项目,目录如下

    在这里插入图片描述

    demo.go

    package demo
    
    import (
    	"fmt"
    )
    
    func Demo() {
    	fmt.Printf("hello world")
    }
    

    main.go

    package main
    
    import "demo"
    
    func main() {
    	demo.Demo()
    }

    配置Run/Debug Configurations,在Go tool arguments:后输入-i,然后运行后就会生成demo.a

    在这里插入图片描述
    在这里插入图片描述

    二、修改demo.go

    在文件头添加//go:binary-only-package,添加这个之后就不会编译了,这个在go/build/doc.go文件中最下方有说明

    demo.go

    //go:binary-only-package
    
    package demo
    
    import (
    	_ "fmt"
    )
    
    func Demo() {
    }
    //	//go:binary-only-package
    //
    //	package mypkg
    //
    // The source code may include additional Go code. That code is never compiled
    // but will be processed by tools like godoc and might be useful as end-user
    // documentation.

    运行后发现可以正常调用到demo.a里面的Demo函数

    在这里插入图片描述

    提示:必须导入demo里用到的包,要不然会报错

    js