在Mac M2上运行Go代码时(这一点很重要,因为相关lib的安装在Linux上的工作方式不同),导入"githorb.com/zergon321/reisen"时,我得到了如下结果:

# github.com/zergon321/reisen
/Users/ido/go/pkg/mod/github.com/zergon321/reisen@v0.1.4/audio.go:4:11: fatal error: 'libavcodec/avcodec.h' file not found
 #include <libavcodec/avcodec.h>
          ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.

我使用BREW安装了ffmpeg(包括libavcodec/avcodec.h头文件)

brew install ffmpeg

但它不会被自己捡起来.

推荐答案

这就是解决问题的办法:

  1. 如果您确实使用BREW安装了ffmpeg,则头文件应该在那里->;/opt/homebrew/Cellar/ffmpeg/5.1.2/include/libavcodec/avcodec.h(库版本可能不同). 如果由于某种原因不在那里,您可以try 使用find / -name "avcodec.h"定位头文件
  2. 一旦确定了avcodec.h的位置,请注意/include目录的完整路径,并运行GO代码,传递以下标志:
CGO_CPPFLAGS="-I<path/to/include/directory>" go run <your file name or a period>

对我来说,完整的命令是这样的:

CGO_CPPFLAGS="-I/opt/homebrew/Cellar/ffmpeg/5.1.2/include" go run .

Go相关问答推荐

在Go中根据命名空间/字符串生成UUID

需要类型[]*structpb.Value(GCP Golang客户端库;aiPlatform)

不接受来自 stdin 的重复输入

Kusto Go API 从多个表查询

使用 goroutine 比较 Golang 中的两棵树是等价的

Go Build删除信息

git ls-remote 成功而 go get 失败

linter 警告:返回值被忽略

Golang:如何判断通过缓冲通道进行通信时生产者或消费者是否较慢?

将 big.Int 转换为 [2]int64,反之亦然和二进制补码

如何使用 fyne Go 使用 canvas.NewText() 使文本可滚动

在 Go GRPC 服务器流式拦截器上修改元数据

使用 Golang SQL 驱动程序连接到snowflake

将未知长度切片的值分配给Go中的 struct ?

如何优雅地映射到 Go 中返回可变长度数组的方法?

Golang - 使用正则表达式提取链接

在 Go 中,为什么 exec.Command() 失败但 os.StartProcess() 成功启动winget.exe?

AWS EKS 上的 Golang REST API 部署因 CrashLoopBackOff 而失败

将函数的值作为输入参数返回给另一个

Golang 中的无实体函数