Проблемы со сборкой библиотеки vips из go

Я пытаюсь запустить/собрать пакет GoLang, который использует vips. Когда я пытаюсь скомпилировать программу, я получаю эту ошибку: 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. Я тоже пробовал это, но безуспешно.


person cashews    schedule 18.02.2019    source источник
comment
https://github.com/golang/go/wiki/InvalidFlag   -  person Mark    schedule 19.02.2019


Ответы (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 ./...
person Edward Samuel    schedule 20.02.2019
comment
Отлично, спасибо за объяснение! У меня это работает. - person cashews; 20.02.2019