Como posso ver os comandos internos de compilação que falham em uma instalação "ir buscar"?

126

Estou puxando e instalando um pacote com dependências e uma compilação falha, neste caso, não encontrando um arquivo magic.h,. Como vejo os comandos e sinalizadores de compilação? A -vopção não ajuda. (NÃO quero idéias de onde obter magic.h, este é apenas um exemplo.)

$ 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>

Como posso encontrar, por exemplo, onde ele estava procurando arquivos de inclusão, qual fonte exatamente ele estava compilando? (Neste caso, o arquivo de origem que eu vejo em $GO_PATH/srctem que #includecomentou, e um /usr/local/include/match.hexiste de qualquer maneira.)

timbl
fonte
Não é comentado, é um comentário mágico de um cgo. Ele procura o arquivo onde qualquer compilador C o procuraria. Verifique se você instalou a libmagic corretamente. Veja golang.org/cmd/cgo .
Ainar-G
Eu desinstalei e reinstalei o libmagic, usando o brew, que também instalou o go. A questão é como tirar a tampa do que está acontecendo. O arquivo de origem que ele está usando não corresponde ao da árvore src - então de onde ele veio? $ find ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> -note comentou linha de saída
timbl
Você leu o link cgo? É um comentário mágico. O compilador Go converte isso em uma chamada para o compilador C, que por sua vez falha porque não consegue encontrar magic.h. Tente criar um arquivo C com #include <magic.h>ele e compile com um compilador C. Se isso não falha, fica interessante.
Ainar-G
Você também pode precisar ligar brew link libmagic(consulte gist.github.com/eparreno/1845561 ).
Ainar-G

Respostas:

101

Execute go build -x no pacote com problema:

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