在CentOS上使用Go语言打包静态库,你需要遵循以下步骤:
sudo yum install golang
GOPATH和GOROOT环境变量已经设置。通常,GOROOT是Go的安装路径,而GOPATH是你工作空间的路径。你可以在~/.bashrc或~/.bash_profile文件中设置它们:export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
然后运行source ~/.bashrc或source ~/.bash_profile使设置生效。
lib.go,并编写你的静态库代码。例如:// lib.go
package mylib
import "C"
//export Add
func Add(a, b int) int {
return a + b
}
func main() {}
这个例子中,我们创建了一个名为mylib的包,它包含一个名为Add的函数,该函数接受两个整数参数并返回它们的和。
go build命令编译静态库。在编译时,需要使用-buildmode=c-archive标志来生成C语言兼容的静态库。例如:go build -o libmylib.a -buildmode=c-archive lib.go
这将生成一个名为libmylib.a的静态库文件。
libmylib.a文件复制到项目的库目录中,并在编译时链接该库。例如,在C++项目中,你可以这样使用静态库:// main.cpp
#include <iostream>
extern "C" {
int Add(int a, int b);
}
int main() {
std::cout << "Add(3, 4) = " << Add(3, 4) << std::endl;
return 0;
}
编译命令:
g++ main.cpp -L/path/to/your/static/lib -lmylib -o myapp
这里,-L标志指定了库文件的路径,-l标志指定了库的名称(不包括lib前缀和.a后缀)。
现在你已经成功地在CentOS上使用Go语言打包了一个静态库,并在其他C++项目中使用了它。