centos中如何用golang打包静态库
在CentOS下用Go语言打包静态库,其实操作起来并不复杂,步骤也很清晰。下面就把整个流程拆开来讲,每一步都配上了代码,照着做就行。 第一步:安装Go环境 首先要确保系统里有Go。如果还没装,直接用yum搞定: sudo yum install golang 装完后可以用 go version 验证
在CentOS下用Go语言打包静态库,其实操作起来并不复杂,步骤也很清晰。下面就把整个流程拆开来讲,每一步都配上了代码,照着做就行。

第一步:安装Go环境
首先要确保系统里有Go。如果还没装,直接用yum搞定:
sudo yum install golang
装完后可以用 go version 验证一下,确认安装成功。
第二步:创建Go项目
新建一个目录,比如叫 mylib,然后进去,初始化Go模块:
mkdir mylib
cd mylib
go mod init mylib
这个模块名可以自定义,但后面编译时保持一致就行。
第三步:编写Go代码
在项目目录里创建一个 .go 文件,比如 lib.go,把你要暴露给C调用的函数写进去。注意要加上 import "C" 和 //export 注释,这样Go编译器才知道哪些函数需要导出。
// lib.go
package mylib
import "C"
//export Add
func Add(a, b int) int {
return a + b
}
func main() {}
这里的 main() 函数是空的,但必须保留,因为Go要求可执行包必须有 main 函数,而静态库正是基于这种模式生成的。
第四步:编译为静态库
核心命令来了:用 go build 加上 -buildmode=c-archive 参数,就会生成一个静态库文件和一个C头文件。
go build -o libmylib.a -buildmode=c-archive lib.go
执行完后,你会看到两个产物:
libmylib.a—— 静态库文件libmylib.h—— C头文件,里面包含了导出函数的声明
头文件里的内容会自动生成,不需要手动写,非常方便。
第五步:在C/C++项目中使用这个静态库
现在把 libmylib.a 和 libmylib.h 复制到你的C项目目录里,然后写一个C文件来调用它。比如创建 main.c:
#include
#include "libmylib.h"
int main() {
int result = Add(3, 4);
printf("Result: %d\n", result);
return 0;
}
编译时链接静态库:
gcc -o main main.c -L. -lmylib
这里 -L. 表示当前目录,-lmylib 会链接 libmylib.a(注意去掉前面的 lib 和后面的 .a)。
最后运行生成的可执行文件:
./main
输出结果:
Result: 7
大功告成。整个过程就是“安装Go → 写代码 → 编译成静态库 → 在C里调用”,没有太多弯弯绕绕。关键点在于 -buildmode=c-archive 这个参数,以及 //export 注释的正确写法。只要这两步不出错,其他都是水到渠成的事。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















