2013-02-12 6 views
5

मैं दो निष्पादनयोग्य जो दोनों के एन पुस्तकालयों से जोड़ा जा करने की जरूरत है मिल गया है में दो निष्पादनयोग्य करने के लिए कई पुस्तकालयों को लिंक करना है जो एक ही कर रहे हैं:CMake: एक आदेश

add_executable(MyExe1 main1.cpp) 
add_executable(MyExe2 main2.cpp) 

target_link_libraries(MyExe1 lib1 lib2 lib3 ... libN) 
target_link_libraries(MyExe2 lib1 lib2 lib3 ... libN) 

तो मैं target_link_libraries दो बार लिखने के लिए है, एक बार MyExe1 और MyExe2 के लिए। क्या कुछ सामान्य पुस्तकालयों को दो अलग-अलग निष्पादन योग्य तरीके से जोड़ने के तरीके को कम करने का कोई तरीका है? मैं सोच रहा हूं कि lib1 ... libN पुस्तकालयों को MyExe1 और MyExe2 दोनों को अनावश्यकता से बचने और सीएमके फ़ाइल क्लीनर बनाने के लिए एक कमांड में लिंक करना संभव है।

उत्तर

7

आप तर्कों की सूची से एक चर सेट करने के लिए set आदेश का उपयोग कर सकते हैं:

add_executable(MyExe1 main1.cpp) 
add_executable(MyExe2 main2.cpp) 

set(LIBS lib1 lib2 lib3 ... libN) 

target_link_libraries(MyExe1 ${LIBS}) 
target_link_libraries(MyExe2 ${LIBS}) 
+0

वहाँ एक cmake छद्म पुस्तकालय देता है कि ताकि आप कुछ में इसका इस्तेमाल कर सकते आप lib1AndLib2 परिभाषित करते हैं बनाने के लिए एक रास्ता है जैसे "target_link_libraries (MyExe1 lib1AndLib2)"? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^