तो मैं qmake का उपयोग अपने कार्यक्रम बनाने के लिए है, लेकिन मैं हमेशा हूँ मेरी डिबग और संदेश के साथ बढ़ावा पुस्तकालयों रिलीज के बीच एक संघर्ष होने:क्यूटी निर्माता का लक्ष्य (डिबग/रिलीज) (दृश्य स्टूडियो) पता लगाने के लिए कैसे
libboost_system-vc120-mt-s-1_58.lib(error_code.obj):-1: error: LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.obj
मैं इस तरह से स्वचालित बनाना चाहता हूं, जहां क्यूटी निर्माता से डीबग या रिलीज करना सही संस्करण बनाने के लिए पर्याप्त है। मैंने अन्य समाधान जैसे here देखा, लेकिन यह काम नहीं करता है। कारण है कि यह जब दोनों डिबग के लिए निम्न आदेश बुला काम नहीं करता देखा जा सकता है और जारी:
message($$CONFIG)
जो qmake के विन्यास प्रिंट होगा।
रिहाई के लिए::
लेक्स याक डिबग अपवाद depend_includepath testcase_targets import_plugins import_qpa_plugin rtti_off incremental_off खिड़कियों क्यूटी warn_on रिहाई link_prl वृद्धिशील फ्लैट precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe C++ 11 डिबग स्थिर RTTI no_plugin_manifest परिणाम इस प्रकार हैं QPA Win32 MSVC copy_dir_files
जारी डिबग के लिए:
लेक्स याक डिबग अपवाद depend_includepath testcase_targets import_plugins import_qpa_plugin rtti_off incremental_off खिड़कियों क्यूटी warn_on रिहाई link_prl वृद्धिशील फ्लैट precompile_header autogen_precompile_source debug_and_release debug_and_release_target embed_manifest_dll embed_manifest_exe C++ 11 डिबग स्थिर RTTI no_plugin_manifest QPA Win32 MSVC copy_dir_files
सूचना है कि दोनों डीबग और रिलीज शामिल है ... और मुझे आश्चर्य है कि क्यों ...
मैं यह इंगित करना चाहता हूं कि मैंने इस क्यूटी संस्करण को स्रोत से संकलित किया है। लेकिन जब मैंने ऐसा किया तो कोई अजीब चीज नहीं थी। मैं इसे संकलित करने के लिए निम्न आदेश का इस्तेमाल किया (तब सरल nmake साथ संकलन कॉन्फ़िगर करें देखें):
configure -debug-and-release -opensource -platform win32-msvc2013 -opengl desktop -static -nomake examples -nomake tests
मैं आदेश को जोड़कर एक सुस्त समाधान की कोशिश की: मेरे मेकअप फ़ाइल में debug:CONFIG-=release
, लेकिन उस रिलीज़ संस्करण डिबग बनने के लिए कारण होगा जब मैं क्यूटी निर्माता से रिहाई का चयन करता हूं तो 14 एमबी के बजाय 30 एमबी आकार के साथ।
मेरी qmake फ़ाइल एक विशिष्ट है। निम्नलिखित वह हिस्सा है जो समस्या के साथ कुछ भी कर सकता है। अन्य भाग सिर्फ फाइलें और पुस्तकालयों और पथ जोड़ रहे हैं:
QMAKE_CFLAGS += /MT
QT += core gui
unix:QMAKE_CXXFLAGS += -std=c++11
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = MyProg
TEMPLATE = app
तो यह समस्या क्यों हो रही है? मेरा डीबग क्यों है या एक डीबग रिलीज और रिलीज क्यों? मैं उनके बीच अंतर कैसे कर सकता हूं?
कृपया पूछें कि क्या आपको कोई अतिरिक्त जानकारी चाहिए या नहीं।
http://code.qt.io/cgit/qt/qtbase.git/tree/configure#n2401 कि '-debug और रिहाई का कहना है 'एक मैक-ओनली विकल्प है। – Mitch
@ मिच अजीब ... संकलन के साथ कभी समस्या नहीं थी! –
यदि यह एक बग की तरह लगता है, तो कृपया इसकी रिपोर्ट करें। ऐसा लगता है कि आपको कम से कम एक चेतावनी मिलनी चाहिए, और इससे आपको बहुत समय बचा सकता है ... लेकिन मुझे qmake के बारे में बहुत कुछ पता नहीं है। – Mitch