go-doc-库编译和使用

静态库-实践

  • go1.21.3
  • window10
  • 项目路径 C:\pp\other\eht\go\go-tutorial-lib

注意:二进制包-1.12后不可使用
//go: binary-only-package

编译静态库
cd C:\pp\other\eht\go\go-tutorial-lib\myLibs
go build -buildmode=archive -o myLibs.a ./
go build -buildmode=archive -o myLibs/mathUtils.a ./mathUtils
go build -buildmode=archive -o myLibs/stringUtils.a ./stringUtils

报错:package myLibs is not in std (C:\Users\Administrator\sdk\go1.21.3\src\myLibs)
目录错了,可能没切换到 myLibs 目录进行操作

编译程序
cd C:\pp\other\eht\go\go-tutorial-lib\example
go build -buildmode=archive -o example/src/testA.a ./src/testA
go tool compile -I ../myLibs -I ./ -o main.o ./src/main.go
go tool link -L ../myLibs -L ./ -o main.exe main.o
./main.exe

插件库-实践

  • go1.21.3
  • centos
  • 项目路径 /data/temp/go-tutorial-lib

注意:不支持windows平台

编译插件
cd /data/temp/go-tutorial-lib/learnPlugin/libExport
go build -buildmode=plugin -o libExport.so ./main.go

编译程序
cd /data/temp/go-tutorial-lib/learnPlugin/example
go build ./src/main.go
./main.exe

链接

编译go应用的黑盒挑战
https://blog.csdn.net/wenbingy/article/details/136247596
https://hotttao.github.io/posts/program/go/expert/go_export/expert_27/
https://blog.csdn.net/baixvkwfn/article/details/128942195
https://blog.csdn.net/baixvkwfn/article/details/128942195
https://juejin.cn/post/7385163643297234979
https://liqiang.io/post/usage-for-plugin-in-go-497f3934#google_vignette