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
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号