2012-06-14 17 views
7

मैं इस तरह के रूप डिबग/रिलीज निर्भर संकलक झंडे, शामिल करने के लिए कोशिश कर रहा हूँ:CMake अनदेखी CMAKE_BUILD_TYPE = डिबग

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x -Wall -DUSE_BOOST") 
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") 
set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O3") 

मैं जैसे एक आदेश के साथ अपने निर्माण फ़ोल्डर बनाने:

cmake -DCMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 

हालांकि यह सीएमकेई संस्करण 2.8.7 के साथ लगता है, CMAKE_BUILD_TYPE को अनदेखा किया जा रहा है। ऐसा लगता है कि यह संस्करण 2.8.4 (एक अलग मशीन पर) के साथ पूरी तरह से काम करता है, तो क्या इस विधि को बहिष्कृत किया गया है या क्या कोई और समस्या है?

Zenna

+0

यह बहिष्कृत नहीं है। आप कैसे मूल्यांकन कर रहे हैं कि इसे अनदेखा किया जा रहा है? – Fraser

+0

निष्पादन योग्य में कोई डीबग प्रतीक नहीं हैं, और यदि मैं खराब आदेश जोड़ता हूं उदा। सेट करें (CMAKE_CXX_FLAGS_DEBUG "$ {CMAKE_CXX_FLAGS_DEBUG} - बहुत सारे खराब आदेश"), कोई प्रभाव नहीं है। – zenna

+2

पढ़ना चाहिए: http://www.cmake.org/pipermail/cmake/2008- सितंबर/023808.html – bitek

उत्तर

4

समस्या यह थी कि वहाँ -D और चर के बीच एक रिक्ति होना चाहिए।

cmake -D CMAKE_BUILD_TYPE=Release -D UseFortran=True -D CMAKE_CXX_COMPILER=g++-4.6 ~/repos/cliques/cliques 
+1

और चर प्रकार को परिभाषित करना न भूलें। सीएमके दस्तावेज़ों से, यह है: '-D : = ' –

+5

मेरे पास _never_ को डी-डी के बाद एक स्थान का उपयोग करना पड़ा। क्या आप सुनिश्चित हैं कि आपके 'CMAKE_CXX_FLAGS_DEBUG' में '-g' है? यदि आपने एक ही निर्माण निर्देशिका का पुन: उपयोग किया है, तो यह संभव है कि परिवर्तनीय कैश में अमान्य मानों का पुन: उपयोग किया गया हो। – Mark

+0

क्या बिल्ड प्रकार 'रिलीज' और 'रिलीज' समतुल्य है? – nn0p

1

आप -DCMAKE_BUILD_TYPE=Debug क्यों उपयोग नहीं कर रहे हैं, जब बनाने फ़ोल्डर का निर्माण: यही कारण है, यह होना चाहिए? सीएमके बिल्ड रिलीज टाइप प्रोजेक्ट या डीबग टाइप प्रोजेक्ट, दोनों एक साथ नहीं।

2

मुझे लगता है कि उन्होंने पिछले संस्करण में CMAKE_BUILD_TYPE में एक टाइपो बनाया था। हमारे पास यह porblem था और यहाँ एक लाइन है कि काम करता है।

cmake -D CMAKE_BUILD_TYPE:STRING=Debug ../src 

आप जाँच कर सकते हैं कि हर चीजों का उपयोग कर ठीक से चला गया है कि:

cmake -L ../src 

इस आदेश का उपयोग करके आप सही तरीके से चर CMAKE_BUILD_TYPE नाम के लिए दे सकते हैं।

शुभकामनाएं।

5

आपके पास एक टाइपो है। आपका कोड CMAKE_CSS_FLAGS_RELEASE कहता है। नोटिस CSS, यह CXX होना चाहिए।