magic.h
ฉันกำลังดึงและการติดตั้งแพคเกจที่มีการอ้างอิงและรวบรวมล้มเหลวในกรณีนี้ไม่ได้หาไฟล์ ฉันจะดูได้อย่างไรว่าคำสั่งคอมไพล์และแฟล็กคืออะไร? -v
ตัวเลือกไม่ได้ช่วย (ฉันไม่ต้องการความคิดเกี่ยวกับการได้รับเวทมนตร์ 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
ฉันได้ถอนการติดตั้งและติดตั้ง libmagic ใหม่แล้วโดยใช้ brew ซึ่งติดตั้งไปด้วย คำถามคือจะถอดฝาออกได้อย่างไรว่ากำลังทำอะไรอยู่ ซอร์สไฟล์ที่ใช้ไม่ตรงกับไฟล์ในทรี src - แล้วมันมาจากไหน? $ find ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <magic.h> // #include <magic.h>> - หมายเหตุแสดงความคิดเห็นในบรรทัด
—
timbl
คุณอ่านลิงค์ cgo หรือยัง? มันเป็นความคิดเห็นที่วิเศษ คอมไพเลอร์ Go แปลว่าเป็นการเรียกไปที่คอมไพเลอร์ C ซึ่งจะล้มเหลวเนื่องจากไม่พบเวทมนตร์ h. ลองสร้างไฟล์ C ด้วย
—
Ainar-G
#include <magic.h>
และคอมไพล์ด้วยคอมไพเลอร์ C มันไม่ได้ล้มเหลวมันน่าสนใจ
นอกจากนี้คุณอาจต้องโทร
—
Ainar-G
brew link libmagic
(ดูgist.github.com/eparreno/1845561 )