Windows下使用Golang生成.lib和.dll文件的命令指南
Windows下使用Golang生成.lib和.dll文件的命令指南 你好,我需要为 cgo 库创建 .lib 和 .dll 文件。在 Windows 系统上,创建 .lib 和 .dll 文件的命令是什么?
3 回复
@Yjuq 感谢您的回复
更多关于Windows下使用Golang生成.lib和.dll文件的命令指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
生成DLL:go build [-o output] -buildmode c-shared
生成LIB:go build [-o output] -buildmode c-archive
更多信息请参考:go help build 或 go help buildmode
func main() {
fmt.Println("hello world")
}
在Windows下使用Go生成.lib和.dll文件,可以通过以下命令实现:
1. 生成.dll文件(动态链接库)
go build -buildmode=c-shared -o mylib.dll
2. 生成.lib文件(导入库)
当使用-buildmode=c-shared时,Go会自动生成对应的.lib文件。例如:
go build -buildmode=c-shared -o mylib.dll
这个命令会同时生成mylib.dll和mylib.lib两个文件。
3. 完整示例
假设有以下Go代码(mylib.go):
package main
import "C"
import "fmt"
//export HelloWorld
func HelloWorld() {
fmt.Println("Hello from Go DLL!")
}
//export Add
func Add(a, b int) int {
return a + b
}
func main() {
// 必须包含main函数,但不会被调用
}
生成命令:
go build -buildmode=c-shared -o mylib.dll mylib.go
执行后会生成:
mylib.dll- 动态链接库mylib.lib- 导入库(供C/C++链接使用)mylib.h- C头文件(包含函数声明)
4. 使用CGO编译特定架构
指定32位:
set GOARCH=386
go build -buildmode=c-shared -o mylib32.dll
指定64位:
set GOARCH=amd64
go build -buildmode=c-shared -o mylib64.dll
5. 验证生成的文件
检查生成的文件:
dir *.dll *.lib
应该能看到类似这样的输出:
mylib.dll
mylib.lib
mylib.h
注意:生成的.lib文件是Windows标准的导入库格式,可以直接在Visual Studio等C/C++项目中使用。

