2012-01-13 14 views
5

यहाँ उत्पादन के लिए मेरे वर्तमान सेटिंग्स है:आउटपुट पथ में रिलीज या डीबग कैसे नहीं जोड़ा जाए?

set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") 
set(LIBRARY_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bin") 
set(RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") 

लेकिन किसी कारण मैं नहीं चाहता (MSVS) के लिए मेरे बिन फ़ोल्डर में बिन/रिलीज या डीबग फ़ोल्डर में फ़ाइलों को बाहर डाल दिया। क्या मैं इसे किसी भी तरह सीएमके का उपयोग कर महसूस कर सकता हूं?

आप

उत्तर

9

धन्यवाद एक similar question कुछ महीने पहले, कहा गया था, जहां मैं target properties के उपयोग की सलाह दी है और यह भी another answer करने के लिए भेजा। एमएसवीसी के लिए आप प्रति-विन्यास आधार पर निष्पादन योग्य, पुस्तकालय, अभिलेखागार आदि के स्थानों को पूरी तरह से निर्दिष्ट कर सकते हैं।

उदा। कुछ की तरह उपयोग करते हुए:

if (MSVC) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${youroutputdirectory}) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG ${youroutputdirectory}) 
    set_target_properties(${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${youroutputdirectory}) 
    # etc for the other available configuration types (MinSizeRel, RelWithDebInfo) 
endif (MSVC) 

जो एक एकल उत्पादन-निर्देशिका $ {youroutputdirectory} में अपने सभी पुस्तकालयों रखा जाएगा, चाहे वह डिबग में है या config छोड़ दें।

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