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 -v
opció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/src
tiene #include
comentarios, y /usr/local/include/match.h
existe de todos modos).
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
—
Ainar-G
#include <magic.h>
él y compílelo con un compilador de C. Si eso no falla, se pone interesante.
También es posible que deba llamar
—
Ainar-G
brew link libmagic
(consulte gist.github.com/eparreno/1845561 ).