मैक / टीवी / आईओएस परियोजना में उपयोग के लिए एक फ्रेमवर्क बनाने में मैंने एक फ्रेमवर्क बनाने और बिटकॉइन को शामिल करने का निर्णय लिया, बस मामले में। हालाँकि, मेरे आउटपुट फ्रेमवर्क में बिटकोड नहीं है।
मैं देख सकता हूँ -fembed-bitcode
प्रत्येक स्रोत फ़ाइल पर बुलाया जा रहा है, लेकिन जब मैं जाँच करता हूँ .dylib
साथ में otool -l library.dylib
यहाँ नहीं हैं __LLVM
अनुभाग। एक स्थिर पुस्तकालय बनाने के लिए स्विच करना मैं देख सकता हूं __LLVM
अनुभागों.
पुस्तकालय का निर्माण सही ढंग से क्यों नहीं किया जाता है?
उत्तर:
जवाब के लिए 0 № 1कुंजी यह है कि एक स्थिर पुस्तकालय सिर्फ एक हैऑब्जेक्ट फ़ाइलों का संग्रह। डायनामिक लाइब्रेरी को सही ढंग से बनाने के लिए कि क्या आपको किसी फ्रेमवर्क में या सीमेक से आउटपुट की आखिरी लाइन देखने की जरूरत है। वहाँ आप देखेंगे clang
सभी के साथ कहा जाता है .o
फ़ाइलें और आउटपुट फ़ाइल जा रहा है .dylib
। यह लाइन गायब है -fembed-bitcode
और लाइब्रेरी को लिंक करते समय आपको फिर से पास करना होगा -fembed-bitcode
झंडा।
इसलिए ध्वज को संकलन लक्ष्य और लाइब्रेरी से जोड़कर सही ढंग से बिटकॉइन जोड़ता है।
target_compile_options( library PUBLIC -fembed-bitcode )
target_link_libraries( library PUBLIC -fembed-bitcode )