【问题标题】:Issues building vips library from go从 go 构建 vips 库的问题
【发布时间】:2019-02-18 21:22:51
【问题描述】:

我正在尝试运行/构建一个使用 vips 的 GoLang 包。当我尝试编译程序时,出现此错误: go build gopkg.in/h2non/bimg.v1: invalid flag in pkg-config --cflags: -Xpreprocessor

这是我的规格:

macOS Mojave Version 10.14.3
vips Version 8.7.4
go Version 1.11.5 darwin/amd64

我阅读了一些添加 CGOALLOWEDFLAGS 的问题,我也尝试过,但没有运气。

【问题讨论】:

标签: macos go vips


【解决方案1】:

CFLAGS 是提供给 C 编译器的额外标志。 (常用于make,见:https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html

gopkg.in/h2non/bimg.v1/vips.go 使用pkg-config 生成额外的标志。它有 -Xpreprocessor 标志,这是 CGo 不允许的(在撰写本文时默认情况下)。

出于安全原因,只允许使用一组有限的标志,特别是 -D-I-l。要允许附加标志,请将CGO_CFLAGS_ALLOW 设置为与新标志匹配的正则表达式。要禁止原本允许的标志,请将CGO_CFLAGS_DISALLOW 设置为匹配必须禁止的参数的正则表达式。在这两种情况下,正则表达式都必须匹配一个完整的参数:要允许-mfoo=bar,请使用CGO_CFLAGS_ALLOW='-mfoo.*',而不仅仅是CGO_CFLAGS_ALLOW='-mfoo'。 (见:https://golang.org/cmd/cgo/

要允许-Xpreprocessor,您可以设置CGO_CFLAGS_ALLOW=-Xpreprocessor。 例如:

CGO_CFLAGS_ALLOW=-Xpreprocessor go vet ./...

【讨论】:

  • 太好了,谢谢你的解释!我已经成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-08
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多