2016-06-30 3 views
5

मैं cmc "-std = C++ 14" कंपाइलर ध्वज को शामिल करने का प्रबंधन करना चाहता हूं। here वर्णित के रूप में CMAKE_CXX_STANDARD का उपयोग करना आसान है। यह निम्न सहित करने पर निर्भर करता:CMAKE_CXX_STANDARD निर्दिष्ट करते समय संकलित ध्वज को कैसे नियंत्रित किया जाए?

set(CMAKE_CXX_STANDARD 14) 
set(CMAKE_CXX_STANDARD_REQUIRED on) 

हालांकि, जब जीसीसी का उपयोग कर, यह जो कुछ अमानक विशेषताएं शामिल हैं "-std = GNU ++ 14" के शामिल किए जाने का परिणाम है। "-std = gnu ++ 14" के बजाय CMAKE_CXX_STANDARD का उपयोग करते समय cmake "-std = C++ 14" कंपाइलर ध्वज का आह्वान करने का कोई तरीका है?

उत्तर

5

-std = C++ 1n और -std = gnu ++ 1n के बीच स्विच करने के लिए आप CXX_EXTENSIONS या वैश्विक चर CMAKE_CXX_EXTENSIONS गुण का उपयोग कर सकते हैं।

https://cmake.org/cmake/help/v3.1/prop_tgt/CXX_EXTENSIONS.html

+1

यह होता है कि ... और वाह ... यह CMAKE_CXX_STANDARD से पहले cmake प्रलेखन पेज दाईं ओर है। मैंने सोचा होगा कि मैंने कई खोजों में से एक को खुलासा किया होगा कि ये झंडे संबंधित हैं। वैसे भी, सही जवाब के लिए धन्यवाद! – doc07b5

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

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