का उपयोग कर विशिष्ट स्थानों में कंपाइलर कमांड लाइन तर्क कैसे डालें, इसलिए मैं दो स्थैतिक पुस्तकालयों में से एक साझा लाइब्रेरी का निर्माण कर रहा हूं।cmake
This answer यह कहने का तरीका है कि मेरे स्थिर libs से पहले -Wl,--no-whole-archive
-Wl,--whole-archive
डालने का तरीका है।
तो क्या मैं साझा लाइब्रेरी के लिए इस समय cmake में है:
add_library(wittyPlus SHARED empty.cpp)
target_link_libraries(wittyPlus
${wtdbosqlite}
${WT_LIBRARIES}
${DB_LIBRARIES}
${Boost_LIBRARIES}
app models
)
तो मैं क्या जरूरत है यह उनके पीछे -Wl,--no-whole-archive
app
और models
से पहले -Wl,--whole-archive
जोड़ने के लिए है, तो (ताकि है मानक पुस्तकालय आयात साझा lib द्वारा निर्यात नहीं किया जाता है)।
सीएमके में ऐसा करने का सबसे आसान तरीका क्या है?
अलावा: तो मैं के रूप में ज्यादा संभव के रूप में मानक cmake सामान का उपयोग करना चाहते हैं, कि जिस तरह से मैं किसी भी अतिरिक्त काम खिड़कियों के लिए बनाता है, के रूप में CMake कृपया संकलक परिभाषाओं को हटा करने के लिए की जरूरत नहीं है जो प्लेटफार्म पर निर्मित नहीं हैं।
क्या आपको कोई ऐसा काम मिला है जिसके लिए शून्य 'खाली.cpp' फ़ाइल की आवश्यकता नहीं है? –
नहीं, मैं हर समय blank.cpp का उपयोग करता हूं। – matiu
मुझे लगता है कि आप फ़ाइल (WRITE खाली.cpp "") कर सकते हैं, यदि आप जंक फ़ाइलों के साथ अपने वास्तविक स्रोत पेड़ को प्रदूषित नहीं करना चाहते हैं। –