我正在尝试运行/构建使用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时遇到了一些问题,但也没有运气。
答案 0 :(得分:0)
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 ./...