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).
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/. –
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
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. –