windows下解决cgo编译报错

windows下解决cgo编译报错

测试代码如下:

// test.go
package main

/*
#cgo LDFLAGS: -L D:\desktop\app\code\go_study\cgo_ffmpeg\ffmpeg\lib -lavcodec

#include <libavcodec/avcodec.h>
*/
import "C"
import "fmt"

func main() {
	fmt.Println("FFmpeg版本:", C.avcodec_version())
}

1、cgo指令如下时:


#cgo LDFLAGS: -L D:\desktop\app\code\go_study\cgo_ffmpeg\ffmpeg\lib -lavcodec


出现报错:
cannot find -lavcodec
collect2.exe: error: ld returned 1 exit status

2、cgo指令如下时:


#cgo LDFLAGS: -L D:\\desktop\\app\code\\go_study\\cgo_ffmpeg\\ffmpeg\\lib -lavcodec

出现报错:
D:\desktop\app\code\go_study\cgo_ffmpeg\test.go: malformed #cgo argument: D:\desktop\appcode\go_study\cgo_ffmpeg\ffmpeg\lib

3、正确链接库目录为:

#cgo LDFLAGS: -L D:/desktop/app/code/go_study/cgo_ffmpeg/ffmpeg/lib -lavcodec

4、但是此时出现的其它报错:

exit status 0xc0000135

这个报错是说明链接动态库dll失败,可以将动态库的bin目录添加到系统环境变量path中,也可以将bin目录的dll文件复制到可执行exe文件目录中

重新运行,结果如下

PS D:\desktop\app\code\go_study\cgo_ffmpeg> go run test.go
FFmpeg版本: 4006246
posted @ 2025-04-09 10:36  小依昂阳  阅读(186)  评论(0)    收藏  举报