我正在提取并安装具有依赖项的软件包,并且编译失败,在这种情况下,找不到文件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
仍然存在。)
它没有发表评论,这是CGO的神奇评论。它在任何C编译器都会在其中寻找文件的位置。确保正确安装了libmagic。参见golang.org/cmd/cgo。
—
Ainar-G 2015年
我使用brew卸载并重新安装了libmagic,它也安装了go。问题是如何摆脱困境。它使用的源文件与src树中的源文件不匹配-那么它是从哪里获得的呢?$ find〜/ go / src -name“ * .go” -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>>
—
timbl 2015年
您阅读了cgo链接吗?这是一个神奇的评论。Go编译器将其转换为对C编译器的调用,该调用继而失败,因为它找不到magic.h。尝试在其中创建一个C文件,
—
Ainar-G 2015年
#include <magic.h>
然后使用C编译器进行编译。它不会失败,它会变得有趣。
另外,您可能需要致电
—
Ainar-G
brew link libmagic
(请参阅gist.github.com/eparreno/1845561)。