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 buildgo 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.dllmylib.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++项目中使用。

回到顶部