在Debian系统上编译Golang的静态库,你需要遵循以下步骤:
首先,确保你已经安装了Go语言和相关的构建工具。如果没有,请运行以下命令来安装它们:
sudo apt-get update
sudo apt-get install golang-go build-essential
为了编译静态库,你需要设置CGO_ENABLED
环境变量为0。这将禁用CGo,从而生成纯Go代码的静态库。
export CGO_ENABLED=0
创建一个名为hello.go
的文件,并添加以下内容:
package main
import "C"
//export Hello
func Hello() {
println("Hello from Go!")
}
func main() {}
这个简单的示例程序定义了一个名为Hello
的函数,它将在编译为静态库时导出。
运行以下命令来编译静态库:
go build -o libhello.a hello.go
这将生成一个名为libhello.a
的静态库文件。
现在你可以将生成的静态库链接到其他C或Go程序中。例如,创建一个名为main.c
的C文件,内容如下:
#include <stdio.h>
// 声明Hello函数
void Hello();
int main() {
Hello();
return 0;
}
然后,使用以下命令编译C程序,并链接到libhello.a
静态库:
gcc main.c -L. -lhello -o main
这将生成一个名为main
的可执行文件。运行它,你应该看到输出“Hello from Go!”。
注意:在编译C程序时,确保将当前目录(.
)添加到库搜索路径中,以便链接器可以找到libhello.a
文件。你可以使用-L.
选项来实现这一点。