¿Cómo puedo ver los comandos internos de compilación que fallan en una instalación "go get"?

126

Estoy tirando y la instalación de un paquete con dependencias, y haya un fallo en la compilación, en este caso, al no encontrar un archivo, magic.h. ¿Cómo veo cuáles fueron los comandos de compilación y las banderas? La -vopción no ayuda. (NO quiero ideas sobre dónde obtener magia. H, esto es solo un ejemplo).

$ go get -u github.com/presbrey/magicmime
# github.com/presbrey/magicmime
../../../src/github.com/presbrey/magicmime/magicmime.go:20:11: fatal error:   'magic.h' file not found
#include <magic.h>

¿Cómo puedo encontrar, por ejemplo, dónde estaba buscando incluir archivos, qué fuente estaba compilando exactamente ? (En este caso, el archivo de origen que veo $GO_PATH/srctiene #includecomentarios, y /usr/local/include/match.hexiste de todos modos).

timbl
fuente
No está comentado, es el comentario mágico de un cgo. Busca el archivo donde cualquier compilador de C lo buscaría. Asegúrese de haber instalado libmagic correctamente. Ver golang.org/cmd/cgo .
Ainar-G
He desinstalado y reinstalado libmagic, usando brew, que también instaló go. La pregunta es cómo quitar la tapa de lo que está haciendo. El archivo fuente que está utilizando no coincide con el del árbol src, entonces, ¿de dónde lo obtuvo? $ find ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> -nota comentado línea
TiMBL
¿Has leído el enlace de cgo? Es un comentario mágico. El compilador Go traduce eso a una llamada al compilador C, que a su vez falla porque no puede encontrar magic.h. Intente crear un archivo C con #include <magic.h>él y compílelo con un compilador de C. Si eso no falla, se pone interesante.
Ainar-G
También es posible que deba llamar brew link libmagic(consulte gist.github.com/eparreno/1845561 ).
Ainar-G

Respuestas:

101

Ejecute go build -x en el paquete del problema:

go build -x github.com/presbrey/magicmime
Joshua
fuente