2015-07-10 11 views
121

मैं निर्भरताओं के साथ एक पैकेज खींच रहा हूं और स्थापित कर रहा हूं, और संकलन विफल रहता है, इस मामले में फ़ाइल नहीं ढूंढ रहा है, 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 वैसे भी मौजूद है।)

+0

यह टिप्पणी नहीं की है, यह एक सीजीओ की है जादू टिप्पणी। यह उस फ़ाइल की तलाश में है जहां कोई सी संकलक इसकी तलाश करेगा। सुनिश्चित करें कि आपने libmagic सही ढंग से स्थापित किया है। Http://golang.org/cmd/cgo/ देखें। –

+0

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

+0

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

उत्तर

98

भागो समस्या पैकेज पर -x निर्माण जाना:

go build -x github.com/presbrey/magicmime 
+146

आपने डब्ल्यूडब्ल्यूडब्ल्यू का आविष्कार करने वाले व्यक्ति की मदद की! – Hitz

+36

एसओ के आश्चर्य ... – Joshua

संबंधित मुद्दे