Bagaimana saya bisa melihat perintah kompilasi internal yang gagal dalam instalasi "get get"?

126

Saya menarik dan menginstal paket dengan dependensi, dan kompilasi gagal, dalam hal ini tidak menemukan file magic.h,. Bagaimana cara melihat apa perintah dan bendera kompilasi itu? The -vpilihan tidak membantu. (Saya TIDAK ingin ide tentang dari mana mendapatkan magic.h dari, ini hanya sebuah contoh.)

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

Bagaimana saya dapat menemukan, misalnya, di mana ia mencari menyertakan file, apa sumber tepatnya itu kompilasi? (Dalam hal ini file sumber yang saya lihat $GO_PATH/srcmemiliki yang #includeberkomentar, dan /usr/local/include/match.htetap ada.)

timbl
sumber
Tidak dikomentari, ini adalah komentar ajaib cgo. Itu mencari file di mana setiap kompiler C akan mencarinya. Pastikan Anda telah menginstal libmagic dengan benar. Lihat golang.org/cmd/cgo .
Ainar-G
Saya telah menghapus dan menginstal ulang libmagic, menggunakan minuman, yang juga diinstal pergi. Pertanyaannya adalah bagaimana membuka tutup apa yang sedang dilakukan. File sumber yang digunakannya tidak cocok dengan yang ada di pohon src - jadi dari mana ia mendapatkannya? $ find ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> -catatan komentar keluar
timbl
Sudahkah Anda membaca tautan cgo? Itu komentar ajaib. Kompiler Go menerjemahkannya ke panggilan ke kompiler C, yang pada gilirannya gagal karena tidak dapat menemukan magic.h. Coba buat file C dengan #include <magic.h>di dalamnya dan kompilasi dengan kompiler C. Itu tidak gagal, itu menarik.
Ainar-G
Anda juga mungkin perlu menelepon brew link libmagic(lihat gist.github.com/eparreno/1845561 ).
Ainar-G

Jawaban:

101

Jalankan build build -x pada paket masalah:

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