Bağımlılıkları olan bir paketi çekip kuruyorum ve bir derleme başarısız oluyor, bu durumda bir dosya bulamıyorum magic.h
,. Derleme komutlarının ve bayraklarının ne olduğunu nasıl görebilirim? -v
Seçenek yardımcı olmuyor. (Magic.h'den nereden alınacağına dair fikir istemiyorum, bu sadece bir örnek.)
$ 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>
Örneğin, dosya içerme işlemini nerede aradığını, tam olarak hangi kaynağı derlediğini nasıl bulabilirim? (Bu durumda ben gördüğünüz kaynak dosyası $GO_PATH/src
olduğunu vardır #include
dışarı yorumladı ve /usr/local/include/match.h
yine mevcut.)
Yorumlanmadı, bu bir cgo'nun sihirli yorumu. Herhangi bir C derleyicisinin arayacağı dosyayı arar. Libmagic'i doğru şekilde kurduğunuzdan emin olun. Golang.org/cmd/cgo adresine bakın .
—
Ainar-G
Libmagic'i, go'yu da yükleyen brew kullanarak kaldırdım ve yeniden yükledim. Soru, ne yapmakta olduğunun üstünü nasıl kaldıracağımızdır. Kullandığı kaynak dosya src ağacındakiyle eşleşmiyor - peki bu dosyayı nereden aldı? $ bul ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> -not commented out line
—
timbl
Cgo bağlantısını okudunuz mu? Bu sihirli bir yorum. Go derleyicisi bunu C derleyicisine yapılan bir çağrıya çevirir ve bu da magic.h'yi bulamadığı için başarısız olur.
—
Ainar-G
#include <magic.h>
İçinde bir C dosyası oluşturmayı deneyin ve bir C derleyicisi ile derleyin. Başarısız olmaz, ilginçleşir.
Ayrıca aramanız gerekebilir
—
Ainar-G
brew link libmagic
(bkz. Gist.github.com/eparreno/1845561 ).