2015-07-10 9 views
121

Wyciągam i instaluję pakiet z zależnościami, a kompilacja kończy się niepowodzeniem, w tym przypadku nie znajduje pliku, magic.h. Jak mogę sprawdzić, jakie były komendy kompilacji i flagi? Opcja -v nie pomaga. (Nie chcę pomysły o tym, gdzie uzyskać magic.h ze jest to tylko przykład).Jak mogę zobaczyć wewnętrzne polecenia kompilacji, które zawiodły w instalacji "idź, zobacz"?

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

Jak mogę znaleźć, na przykład, gdzie szukał zawierać pliki, co źródło dokładnie to się kompilowało? (W tym przypadku plik źródłowy widzę w $GO_PATH/src ma że #include wykomentowane i /usr/local/include/match.h istnieje w każdym razie).

+0

To nie skomentował, że to CGO na magiczny komentarz. Szuka pliku, w którym mógłby go znaleźć każdy kompilator C. Upewnij się, że poprawnie zainstalowałeś libmagic. Zobacz http://golang.org/cmd/cgo/. –

+0

Odinstalowałem i ponownie zainstalowałem libmagic, używając brew, który również zainstalował go. Pytanie brzmi, jak zdjąć pokrywę, co się dzieje. Plik źródłowy, którego używa, nie pasuje do tego w drzewie src - więc skąd go wziął? $ find ~/go/src -name "* .go" -exec grep magic.h {} \; // #include // #include > - komentarz skomentował linię – timbl

+0

Czy czytasz link cgo? To magiczny komentarz. Kompilator Go tłumaczy to na wywołanie kompilatora C, co z kolei kończy się niepowodzeniem, ponieważ nie może znaleźć magic.h. Spróbuj utworzyć plik C z '#include ' w nim i skompiluj go z kompilatorem C. To się nie zawodzi, robi się ciekawe. –

Odpowiedz

98

Uruchom iść zbudować -x na opakowaniu problemu:

go build -x github.com/presbrey/magicmime 
+146

Po prostu pomogłeś człowiekowi, który wynalazł WWW! – Hitz

+36

cud SO ... – Joshua

Powiązane problemy