के साथ एलटीओ मैं एक सीएमके परियोजना पर एलएलवीएम के साथ लिंक टाइम ऑप्टिमाइज़ेशन लागू करने की कोशिश कर रहा हूं, जो साझा लाइब्रेरी बनाता है। मेरा सवाल इस जैसा है:एलएलवीओ और सीएमके
Switching between GCC and Clang/LLVM using CMake।
हालांकि, उत्तर अब लागू नहीं होते हैं, क्योंकि llvm-ld
नए संस्करणों में मौजूद नहीं है।
संकलित बाइट कोड को:
clang++ -c FirstClass.cpp -O3 -flto -o FirstClass.bc
clang++ -c SecondClass.cpp -O3 -flto -o SecondClass.bc
लिंक बाइट कोड:
llvm-link FirstClass.bc SecondClass.bc -o unoptimized.bc
कमांड लाइन पर, मैं LTO (यह मानते हुए केवल 2 .cpp
फ़ाइलें हैं) प्राप्त करने के लिए निम्नलिखित कमांड चलाने बाइट कोड अनुकूलित करें:
opt -O3 unoptimized.bc -o optimized.bc
साझा ऑब्जेक्ट में बाइट कोड कनवर्ट करें:
clang++ -shared optimized.bc -o libTest.so
क्या कोई मुझे बता सकता है कि सीएमके अतिरिक्त कदम कैसे चला सकता है?
यह [ 'add_custom_command'] के लिए एक नौकरी हो सकता है (https://cmake.org/cmake/help/v3 .0/कमांड/add_custom_command.html) सेमेक की ... कुछ जोड़ने जैसे 'add_custom_command (OUTPUT libTest.so COMMAND clang ++ -shared optimized.bc -o libTest.so MAIN_DEPENDENCY optimized.bc)' http://stackoverflow.com/ देखें प्रश्न/13470499/cmake-एड-कस्टम आदेश-साथ-निर्भरता-से-एक अलग-निर्देशिका – francis