से मैकोज सिएरा पर डाइलिब पथ का उपयोग करने वाले स्रोत को संकलित करने के लिए कैसे मैं कुछ स्रोत कोड संकलित कर रहा हूं जिसके लिए मैंने पहले से ही बनाई गई अन्य परियोजनाओं से कुछ dylibs की आवश्यकता है। मैं हो रही हैशैल
ld: प्रतीक (रों) वास्तुकला x86_64`
जब भी मैं निष्पादित
g++ some_code.cpp -I/usr/local/include -o executable_binary
मुझे पता है कि g++
संकलित ढूँढने में सक्षम नहीं है के लिए नहीं मिला dylibs (/usr/local/include
पर स्थापित) क्योंकि त्रुटि में कई विशिष्ट प्रतीक भी शामिल हैं जो डाइलीब का हिस्सा हैं।
मैं पहले से ही इस की कोशिश की है:
- निष्पादित
install_name_tool -id "@/usr/local/lib/requiredlib.dylib" /usr/local/lib/requiredlib.dylib
- संकलन विकल्प के लिए
-L/usr/local/lib
जोड़ा जा रहा है। - सभी डिलीब पथ को संकलन विकल्पों में स्पष्ट रूप से जोड़ना।
DYLD_LIBRARY_PATH
असफल रूप से जोड़ने का प्रयास करें क्योंकि सिएरा सुरक्षा कारणों से उस चर को सेट करने की अनुमति नहीं देता है।
मुझे पता है कि DYLD_LIBRARY_PATH
जोड़ना संभव हो सकता है लेकिन इसके लिए एसआईपी को अक्षम करने की आवश्यकता है। मैं यह कर सकता हूं कि मैं ऐसा नहीं करना चाहता हूं कि ऐसा करने के लिए एक क्लीनर तरीका है।
पीएस .: मैं Tulip graph library के लिए ट्यूटोरियल उदाहरण संकलित करने की कोशिश कर रहा हूं।
गायब प्रतीकों को मैंने स्थापित ग्राफ लाइब्रेरी से संबंधित हैं। त्रुटि संदेश है:
Undefined symbols for architecture x86_64:
"tlp::saveGraph(tlp::Graph*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, tlp::PluginProgress*)", referenced from:
_main in tutorial001-02ee7e.o
"operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, tlp::Graph const*)", referenced from:
_main in tutorial001-02ee7e.o
ld: symbol(s) not found for architecture x86_64
जब भी मैं ls /usr/local/lib/requiredlib.dylib
कर सभी Tulip से संकलित पुस्तकालयों देखते हैं।
g++ -v
पैदा करता है:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
ls /usr/local/include/tulip/
करने के बाद मैं पुस्तकालयों मैं उपयोग करना चाहते हैं की *.h
फ़ाइलों की सूची मिलता है।
यह वास्तव में स्पष्ट नहीं है कि आप कौन से प्रतीकों को याद कर रहे हैं, जी ++ का क्या संस्करण चल रहा है, आदि। और निश्चित रूप से आपके संकलित पुस्तकालय '/ usr/local/include' – pvg
में स्थापित नहीं हैं इन विवरणों को जोड़ने के लिए अपना प्रश्न संपादित करें । – pvg
असफल लिंक के साथ सहायता प्राप्त करने के लिए आपको कम से कम असफल लिंकेज कमांडलाइन और उसके आउटपुट, * verbatim * पोस्ट करने की आवश्यकता है। की स्केची रिपोर्ट्स ने जो किया है, वह हमें अनुमान लगाने से परे लाने के लिए बहुत अस्पष्ट है। –