Я витягати і установку пакета з залежностями, і компіляція зазнає невдачі, в цьому випадку , не знайшовши файл, magic.h. Як я бачу, якими були команди компіляції та прапори? -vВаріант не допомагає. (Я не хочу ідеї про те, звідки взяти magic.h, це лише приклад.)
$ 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>
Як я можу знайти, наприклад, де він шукав файли включення, яке саме джерело він збирав? (У цьому випадку вихідний файл, який я бачу, $GO_PATH/srcмає це #includeпрокоментовано, а /usr/local/include/match.hіснує все одно.)
Це не коментується, це чарівний коментар ЦГО. Він шукає файл, де його шукав би будь-який компілятор C. Переконайтесь, що ви встановили libmagic правильно. Див. Golang.org/cmd/cgo .
—
Айнар-Г
Я видалив і перевстановив libmagic, використовуючи brew, який також встановлено. Питання в тому, як зняти кришку з того, що роблять. Вихідний файл, який він використовує, не відповідає файлу в дереві src - так звідки його взяти? $ find ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> -примітка коментується рядок
—
timbl
Ви читали посилання cgo? Це чарівний коментар. Компілятор Go перекладає це на виклик компілятора C, який, у свою чергу, не працює, оскільки не може знайти магію.h. Спробуйте створити файл C
—
Айнар-Г
#include <magic.h>у ньому та компілюйте з компілятором C. Це, що не виходить з ладу, стає цікавим.
Також вам може знадобитися зателефонувати
—
Айнар-Г
brew link libmagic(див. Gist.github.com/eparreno/1845561 ).