商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > centos中如何用golang打包静态库

centos中如何用golang打包静态库

  发布于2026-07-27 阅读(0)

扫一扫,手机访问

在CentOS下用Go语言打包静态库,其实操作起来并不复杂,步骤也很清晰。下面就把整个流程拆开来讲,每一步都配上了代码,照着做就行。

centos中如何用golang打包静态库

第一步:安装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.alibmylib.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 注释的正确写法。只要这两步不出错,其他都是水到渠成的事。

本文转载于:https://www.yisu.com/ask/38534688.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注