मैं आंतरिक संकलित आदेशों को कैसे देख सकता हूं जो "गो गेट" इंस्टॉलेशन में विफल हो जाते हैं?


126

मैं खींच रहा हूँ और निर्भरता के साथ एक पैकेज को स्थापित करने, और एक संकलन में विफल रहता है, इस मामले में एक फाइल नहीं मिल रहा, magic.h। मैं कैसे देखूं कि संकलन कमांड और झंडे क्या थे? -vविकल्प मदद नहीं करता है। (मैं नहीं चाहता हूं कि इस बारे में विचार हो कि कहां से जादू करना है। यह केवल एक उदाहरण है।)

$ 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 संकलक इसके लिए देखेगा। सुनिश्चित करें कि आपने कामेच्छा को सही तरीके से स्थापित किया है। Golang.org/cmd/cgo देखें ।
आइनर-जी जूल

मैंने फ़ेब्रिक का उपयोग करके अनइंस्टॉल और रीइंस्टॉल किया गया है, जो कि स्थापित भी चलते हैं। सवाल यह है कि जो चल रहा है उसे कैसे बंद करें। स्रोत फ़ाइल का उपयोग कर रहा है वह src पेड़ में एक से मेल नहीं खाता - तो यह कहाँ से मिला? $ मिल ~ / go / src -name "* .go" -exec grep magic.h {} \; // #include <Magic.h> // #include <Magic.h>> -आइटिन ने टिप्पणी की लाइन
timbl

क्या आपने कॉगो लिंक पढ़ा है? यह एक जादू की टिप्पणी है। गो संकलक अनुवाद करता है कि सी कंपाइलर को कॉल करें, जो बदले में विफल हो जाता है क्योंकि यह जादू नहीं पा सकता है। इसमें C फ़ाइल बनाने का प्रयास करें #include <magic.h>और C कंपाइलर से संकलित करें। यह विफल नहीं होता है, यह दिलचस्प हो जाता है।
आइनर-जी जूल

इसके अलावा आपको कॉल करने की आवश्यकता हो सकती है brew link libmagic(देखें gist.github.com/eparreno/1845561 )।
आइनर-जी जूल

जवाबों:


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.