मेरे मिश्रित मोड एप्लिकेशन को जोड़ने के लिए मुझे किन पुस्तकालयों की आवश्यकता है?

I'm integrating .NET support into our C++ application.
It's an old-school MFC application, with 1 extra file compiled with the "/clr" option that references a CWinFormsControl.

I'm not allowed to remove the linker flag "/NODEFAULTLIB".
(We have our own build management system, not Visual Studio's.)
This means I have to specify all necessary libraries: VC runtime and MFC.

अन्य कंपाइलर विकल्पों में "/ एमडी" शामिल है

Next to that: I can't use the linker flag "/FORCE:MULTIPLE" and just add everything:
I'm looking for a non-overlapping set of libraries.

0
ro fr bn

3 उत्तर

अपनी शैली (एसडीआई/एमडीआई/संवाद) में एक नंगे हड्डियों एमएफसी ऐप बनाने के लिए ऐपविज़ार्ड का उपयोग करें और फिर अपने निर्भर करता है

0
जोड़ा

मैंने इसे कैसे हल किया:

  1. "/ फोर्स: मल्टीप्ले/वर्बोज़" (जो लिंक ठीक है) के साथ लिंक करें और आउटपुट को अलग करें।
  2. "/ NODEFAULTIB/verbose" के साथ लिंक करें और पिछले चरण के आउटपुट में सभी अनसुलझेों का पता लगाएं और 1 से 1 तक पुस्तकालय जोड़ें।
  3. इसका परिणाम युगल में हुआ: "एएए.लिब: XXX पहले ही बीबीबी.लिब में परिभाषित है"
  4. फिर मुझे अंत में यह मिला: प्रबंधित/अप्रबंधित इकाइयों के साथ/एमडी के साथ recompiled और लिंक (दूसरों के बीच): mscoree.lib msvcmrt.lib mfcm80d.lib

मिक्सिंग/एमटी (अप्रबंधित) और/एमडी (प्रबंधित) खराब विचार साबित हुआ: अलग (ओवरलैपिंग) पुस्तकालयों की आवश्यकता है।

@ajryan: निर्भरता वॉकर केवल मुझे बताता है कि किस डीएल का उपयोग किया जाता है, न कि लिंकिंग के दौरान पुस्तकालयों से जुड़े होते हैं। (उदाहरण के लिए msvcmrt.lib?) मुझे लगता है।

उत्तर के लिए धन्यवाद!

जनवरी

0
जोड़ा

एक न्यूनतम के रूप में:

mscoree.lib MSVCRT.lib mfc90.lib (उचित रूप से संस्करण समायोजित करें)

और वहां से फिर से शुरू करें।

0
जोड़ा