/ / बिटकॉइन के साथ Dylib या फ्रेमवर्क को सीएमके प्राप्त करना - cmake, dylib

बिटकोड - सेमेक, डाइलिब के साथ डिलिब या फ्रेमवर्क आउटपुट करने के लिए सीएमके प्राप्त करना

मैक / टीवी / आईओएस परियोजना में उपयोग के लिए एक फ्रेमवर्क बनाने में मैंने एक फ्रेमवर्क बनाने और बिटकॉइन को शामिल करने का निर्णय लिया, बस मामले में। हालाँकि, मेरे आउटपुट फ्रेमवर्क में बिटकोड नहीं है।

मैं देख सकता हूँ -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 )