2013-04-10 11 views
12

क्या "nmake" के साथ संकलित करते समय v110_xp टूलसेट (डिफ़ॉल्ट "v110" के बजाय) का उपयोग करने का कोई तरीका है?vS2012 nmake v110_xp टूलसेट का उपयोग कर?

मैं VisualStudio2012 के लिए एक Qt5 लाइब्रेरी संकलित करने की कोशिश कर रहा हूं और मुझे इसे विंडोज एक्सपी मशीनों पर भी काम करने की आवश्यकता है। मैंने एनएसके के साथ वीएस2012 का उपयोग कर सभी क्यूटी 5 पुस्तकालयों को संकलित करने के लिए तैयार किया है, लेकिन यहां तक ​​कि सरल परीक्षण अनुप्रयोग भी मुझे "" देने के लिए विफल रहता है। प्रक्रिया प्रविष्टि बिंदु _except_handler4_common गतिशील लिंक लाइब्रेरी msvcrt.dll में स्थित नहीं हो सका "। (विंडोज 7 मशीनों पर अपने परीक्षण आवेदन सामान्य रूप से काम कर रहा है)

+0

यदि आप msvcrt.dll पर निर्भरता के साथ समाप्त होते हैं तो आपके मेकफ़ाइल में कुछ गंभीरता से बोर्क किया जाता है। आखिरी आयात लाइब्रेरी जिसका इस्तेमाल 10 साल पहले गायब हो गया था। यह अनुमान लगाने में बहुत मुश्किल है कि यह कैसे हो सकता है। –

+0

हंस पासेंट एक टिप्पणी के लिए धन्यवाद, लेकिन (केवल एक उदाहरण) आधिकारिक क्यूटी के Qt5Core.dll की Ole32.dll के लिए निर्भरता है, और इसकी msvcrt.dll के लिए निर्भरता है। इसे "निर्भरता वॉकर" सॉफ़्टवेयर (http://www.dependencywalker.com/) का उपयोग करके स्पष्ट रूप से देखा जा सकता है। कुछ प्रयोग करने के लिए वास्तव में अच्छा होगा और "v110" के बजाय "v110_xp" टूलसेट का उपयोग करके क्यूटी संकलित करना अच्छा होगा ... बस अभी के लिए मुझे यकीन नहीं है कि यह कैसे करें और यदि यह संभव है ... – Gediminas

+0

यह अभी भी समझ में नहीं आता है और v110_xp निश्चित रूप से कोई फर्क नहीं पड़ता। Msvcrt.dll पर निर्भरता के साथ qt5core.dll एकमात्र तरीका समाप्त हो सकता है जब यह mingw के साथ बनाया गया था। –

उत्तर

5
  1. संपादित Makefile। डीबग या Makefile.Release फ़ाइल
  2. -D_USING_V110_SDK71_ को परिभाषित जोड़े

उदाहरण:

DEFINES = -D_USING_V110_SDK71_ -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG

गुड लक!

2

कॉन्फ़िगर करने से पहले mkspecs \ win32-msvc2012 \ qmake.conf को संपादित करना आसान है। संपादित को परिभाषित करता है + = लाइन और निम्नलिखित जोड़ें:

WIN32 _USING_V110_SDK71_ 

आप छिपाया और पॉप के लिए यह परिवर्तन जब भी आप खींच होगा।

1

nmake /E CC="cl /D_USING_V110_SDK71_ /D_WIN32_WINNT=0x0501" /f Makefile.vc

यह जब यह मेकअप फ़ाइल को छूने के लिए मुश्किल है बहुत आसान है।

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