घातक त्रुटि LNK1112: मॉड्यूल मशीन प्रकार 'x64' लक्ष्य मशीन प्रकार 'X86' के साथ टकराव


187

मैं CUDA (VC ++, विजुअल स्टूडियो 2008sp1) का उपयोग करके FEM प्रोग्राम को डीबग कर रहा हूं। कार्यक्रम केवल एक Win32 प्लेटफॉर्म पर चल सकता है, क्यूडा की अपर्याप्तता के लिए। मुझे लगता है कि पुस्तकालय से जुड़ी फाइलें x86 प्लेटफॉर्म पर संकलित हैं, लेकिन जब मैं इसे संकलित करता हूं, तो मुझे त्रुटि संदेश "घातक त्रुटि LNK1112: मॉड्यूल मशीन प्रकार 'x64' लक्ष्य मशीन प्रकार 'X86' के साथ संघर्ष होता है।

मैंने मंच को x64 में बदलने की कोशिश की है, लेकिन यह काम नहीं किया। कृपया मुझे बताएं: "मॉड्यूल मशीन प्रकार" क्या है और "लक्ष्य मशीन प्रकार" क्या है? मैं इसे कैसे दूर कर सकता हूं?

जवाबों:


262

मैंने इस बारे में एक ब्लॉग प्रविष्टि लिखी , क्योंकि मुझे इस समस्या का सामना करना पड़ा, और आखिरकार मैंने अपने सिस्टम को वापस काम करने के क्रम में भेज दिया।

इस क्रम में जाँच करने के लिए ये चीजें हैं:

  1. अपने लिंकर सेटिंग में अपने गुण विकल्पों की जाँच करें: गुण> कॉन्फ़िगरेशन गुण> लिंकर> उन्नत> लक्ष्य मशीन। यदि आप 32 बिट का निर्माण कर रहे हैं, तो आप 64 बिट बिल्ड या मशीन एक्स 86 को लक्षित कर रहे हैं, तो मशीन एक्स 64 का चयन करें।

  2. दृश्य स्टूडियो में मुख्य मेनू से बिल्ड> कॉन्फ़िगरेशन प्रबंधक का चयन करें। सुनिश्चित करें कि आपकी परियोजना में सही मंच निर्दिष्ट है। IDE को x64 बनाने के लिए सेट किया जाना संभव है, लेकिन समाधान में एक व्यक्तिगत परियोजना को win32 को लक्षित करने के लिए सेट किया जा सकता है। तो हाँ, दृश्य स्टूडियो अपने आप को लटकाने के लिए बहुत सारी रस्सी छोड़ता है, लेकिन यह जीवन है।

  3. अपनी लाइब्रेरी फ़ाइलों की जाँच करें कि वे वास्तव में किस प्रकार के प्लेटफ़ॉर्म को लक्षित कर रहे हैं। यह आपके दृश्य स्टूडियो VC \ bin डायरेक्टरी में मौजूद dipbin.exe का उपयोग करके किया जा सकता है। अपने सभी कार्यों को डंप करने के लिए हेडर विकल्प का उपयोग करें। प्रत्येक फ़ंक्शन के लिए मशीन प्रविष्टि देखें। यदि यह 64 बिट बिल्ड है तो इसमें x64 शामिल होना चाहिए।

  4. दृश्य स्टूडियो में, मुख्य मेनू से टूल्स> विकल्प चुनें। प्रोजेक्ट्स और सॉल्यूशन्स> VC ++ निर्देशिकाएँ चुनें। प्लेटफ़ॉर्म ड्रॉपडाउन से x64 का चयन करें। सुनिश्चित करें कि पहली प्रविष्टि है: $ (VCInstallDir) \ बिन \ x86_amd64 द्वारा पीछा $ (VCInstallDir) \ बिन

एक बार जब मैंने चरण 4 किया तो मेरे लिए सब कुछ फिर से काम कर गया। बात यह थी कि मैं अपनी सभी परियोजनाओं पर इस समस्या का सामना कर रहा था जहाँ मैं 64 बिट लक्ष्य की ओर संकलित करना चाहता था।


6
जीवन रक्षक। इसके अलावा चरण 4 में, "लाइब्रेरी निर्देशिकाएँ" को भी 64-बिट पथों पर अपडेट करने की आवश्यकता है
ग्रेगरी

37
विजुअल स्टूडियो 2013 का उपयोग करने वालों के लिए - चरण 4 को हटा दिया गया है, अब आप प्रोजेक्ट गुणों में परिवर्तन करते हैं -> कॉन्फ़िगरेशन गुण -> VC ++ निर्देशिकाएँ - लाइब्रेरी निर्देशिकाएँ
PolyMesh

3
यदि आप बाह्य पुस्तकालय का उपयोग कर रहे हैं जिसे x86 के रूप में संकलित किया गया था, तो आपको यह त्रुटि भी मिलेगी। जब मैं Google टेस्ट लिब का उपयोग करके प्रोजेक्ट बनाने का प्रयास कर रहा था, तो मैं इसमें भाग गया।
20

3
अगर मेरे पास प्रोजेक्ट फाइल नहीं है (मेकफाइल पर nmake चल रहा है), मैं एक ही काम कैसे करूं?
user118967

3
आप GUI संस्करण में प्रोजेक्ट बनाने के बजाय कमांड लाइन पर यह कैसे कर सकते हैं?
रिपोजर

152

सी जॉनसन सूची के अलावा मैं निम्नलिखित बिंदु जोड़ूंगा:

Visual Studio में जाँच करें:
प्रोजेक्ट गुण -> कॉन्फ़िगरेशन गुण -> लिंकर -> कमांड लाइन।

"अतिरिक्त विकल्प" में नहीं होना चाहिए /machine:X86

मेरे पास ऐसी कुंजी है, जो सीएमके आउटपुट द्वारा निर्मित है: सीएमके ने x86 प्रोजेक्ट उत्पन्न किया, फिर मैंने Configuration Managerविज़ुअल स्टूडियो 2010 में x64 प्लेटफ़ॉर्म को जोड़ा - नए प्लेटफॉर्म के लिए सब कुछ ठीक बनाया गया था सिवाय इसके कि लिंकर कमांड लाइन, /machine:X86अलग से निर्दिष्ट ।


20
यह वास्तव में मेरी समस्या थी! लेकिन यह एक CMake जेनरेट किया गया Visual Studio 2017 प्रोजेक्ट था, जहाँ मैंने x64 प्लेटफ़ॉर्म बिल्ड कॉन्फ़िगरेशन बनाने के लिए कॉन्फ़िगरेशन प्रबंधक का उपयोग किया था (जहाँ x64 बिल्ड कॉन्फ़िगरेशन बनाने के लिए Win32 बिल्ड कॉन्फ़िगरेशन की प्रतिलिपि बनाई गई थी)। क्या होता है कि लिंकर का "/ मशीन:" सभी विकल्पों के बीच सेटिंग-> अतिरिक्त विकल्प "और" उन्नत-> लक्ष्य मशीन "संघर्ष।" ठीक करने के लिए, बस "सभी विकल्प-> अतिरिक्त विकल्प" -> "/ मशीन:" सेटिंग को हटा दें।
BoiseBaked

2
इसने शायद मुझे घंटों बचाया। धन्यवाद!
rsp1984

3
यह मेरे लिए फिक्स था इसलिए बस धन्यवाद कहना चाहता था, अजीब तरह से मैं पहले से ही उखाड़ दिया गया था, इसलिए मैं एक ही मुद्दे के साथ पहले भी यहां होना चाहिए था! :)
एडम डेम्पसे

1
इस समाधान का थोड़ा संस्करण: मेरे समाधान की कुछ परियोजनाओं में कॉन्फ़िगरेशन गुण में "लिंकर" नहीं है। इसके बजाय उनके पास "लाइब्रेरियन" है। उन मामलों में, वास्तव में लाइब्रेरियन -> सभी विकल्प -> अतिरिक्त विकल्प ने कहा / मशीन: x86 जबकि लाइब्रेरियन -> सभी विकल्प -> लक्ष्य मशीन ने कहा / मशीन: x64। मैंने लाइब्रेरियन से x86 को हटा दिया -> सभी विकल्प -> अतिरिक्त विकल्प ... और अंत में निर्मित और लिंक की गई चीजें।
15

इन टिप्स के लिए धन्यवाद। यह CMake उपयोगकर्ताओं के लिए एक आम मुद्दा लगता है। अप वोट।
हाओ शी

54

मुझे VS2008 में एक ही समस्या का अनुभव हुआ जब मैंने VS2003 से परिवर्तित प्रोजेक्ट में X64 बिल्ड जोड़ने की कोशिश की।

मैंने Google (टारगेट मशीन, VC ++ निर्देशिकाएँ, DUMPBIN ....) पर इस त्रुटि को खोजते समय पाया गया सब कुछ देखा और सब कुछ ठीक लगा।

अंत में मैंने एक नया परीक्षण प्रोजेक्ट बनाया और उसी में बदलाव किया और यह काम करने लगा।

Vcproj फ़ाइलों के बीच एक अंतर करने से समस्या का पता चला ...।

मेरी परिवर्तित परियोजना में / MACHINE था: i386 को Linker-> Command Line के तहत अतिरिक्त विकल्प के रूप में सेट किया गया था। इस प्रकार दो / MACHINE विकल्प निर्धारित किए गए थे (दोनों x64 और i386) और अतिरिक्त एक ने वरीयता ली।

इसे हटाकर लिंकर के तहत ठीक से सेट करना-> उन्नत-> लक्ष्य मशीन ने समस्या को गायब कर दिया।


8
यह वास्तव में मेरा मुद्दा भी था - लेकिन यह एक दृश्य स्टूडियो समाधान से आया था जो सीएमके का उपयोग करके बनाया गया था। लगता है कि सीएमके को भी इस विकल्प को जोड़ना पसंद है।
निक चाडविक

4
मैं एक सीएमके परियोजना से आया हूं और इसकी पुष्टि कर सकता हूं कि यह विकल्प जोड़ा गया है।
BeeOnRope

25

सभी परियोजना सेटिंग्स सही लग रही थीं, लेकिन मुझे अभी भी त्रुटि मिली। .vcxprojफ़ाइल में देख रहे हैं और "x86" की खोज करने से समस्या का पता चला:

<Lib>
  <AdditionalOptions> /machine:X86 %(AdditionalOptions)</AdditionalOptions>
</Lib>

एक त्वरित खोज / सभी अवरोधों के लिए प्रतिस्थापित (दस व्यक्तिगत फ़ाइल सेटिंग्स) ने समस्या को ठीक किया।


3
परियोजना गुणों में भी -> कॉन्फ़िगरेशन विकल्प -> लाइब्रेरियन -> सभी विकल्प -> अतिरिक्त विकल्प।
15

13

चूंकि समस्या संकलन और लक्ष्य मशीन विनिर्देशों में अंतर के कारण है (x86 & x64) नीचे दिए गए चरणों का पालन करें:

  1. C ++ प्रोजेक्ट खोलें जिसे आप कॉन्फ़िगर करना चाहते हैं।
  2. कॉन्फ़िगरेशन प्रबंधक संवाद बॉक्स खोलने के लिए कॉन्फ़िगरेशन प्रबंधक बटन चुनें।
  3. सक्रिय समाधान प्लेटफ़ॉर्म ड्रॉप-डाउन सूची में, नया समाधान प्लेटफ़ॉर्म संवाद बॉक्स खोलने का विकल्प चुनें।
  4. टाइप करें या नई प्लेटफ़ॉर्म ड्रॉप-डाउन सूची का चयन करें, 64-बिट प्लेटफ़ॉर्म चुनें।

इसने मेरी समस्या हल कर दी।


12

आपके पास संभवतः एक .OBJ या .LIB फ़ाइल है जिसे x64 के लिए लक्षित किया गया है (जो कि मॉड्यूल मशीन प्रकार है) जब आप x86 के लिए लिंक कर रहे हों (तो वह लक्ष्य मशीन प्रकार है)।

अपनी .OBJ फाइलों पर DUMPBIN / HEADERS का उपयोग करें और FILE HEADER VALUES ब्लॉक में मशीन प्रविष्टि के लिए जाँच करें।


3
मेरे लिए यह मूल कारण था जब मुझे इस त्रुटि संदेश का सामना करना पड़ा। मैंने पहले एक आर्किटेक्चर के लिए निर्माण किया था और उस पिछले बिल्ड से ऑब्जेक्ट फ़ाइलों और कामों को ठीक से साफ नहीं किया था। पिछले निर्माण से सभी पुराने .obj और .lib फ़ाइलों को हटाने के बाद, मैं नए आर्किटेक्चर के साथ अपने प्रोजेक्ट को संकलित करने में सक्षम था।
बेन

यह मेरा मुद्दा था और लक्ष्य आर्किटेक्चर बदलते समय निर्माण से पहले साफ करना था।

7

विजुअल स्टूडियो 2012 +/- में, "कॉन्फ़िगरेशन प्रॉपर्टीज़.लिंकर।" कमांड लाइन के लिए प्रॉपर्टी पेज "एडिशनल ऑप्शन्स" नामक एक बॉक्स है। यदि आप x64 का निर्माण कर रहे हैं, तो सुनिश्चित करें कि उस बॉक्स में / MACHINE नहीं है: I386। मेरी परियोजनाओं ने किया और इसने प्रश्न में त्रुटि उत्पन्न की।


4

क्यूटी के निर्माण के दौरान मुझे इस समस्या का सामना करना पड़ा। मैंने जो निर्देश पढ़ा, उसमें सुझाव दिया गया है कि मैं VS कमांड प्रॉम्प्ट का उपयोग करके nmake को कॉन्फ़िगर करता हूं।

मैंने x64 कमांड प्रॉम्प्ट को चुना और बहुत परेशानी के बिना कॉन्फ़िगर किया। जब मैंने nmake की कोशिश की, तो यह त्रुटि दी।

मुझे लगता है कि कुछ घटक 32-बिट के लिए पूर्व-निर्मित थे। त्रुटि ने यह भी बताया कि x86 के लिए कौन से मॉड्यूल बनाए गए थे।

मैंने 32 बिट डिफ़ॉल्ट वीएस कमांड प्रॉम्प्ट का उपयोग किया और यह काम किया।


4
इसने मुझे सही रास्ते पर ला खड़ा किया। यदि आप 64 बिट के लिए निर्माण कर रहे हैं, तो आप अपने वातावरण को सेट करने के लिए इस विंडो शॉर्टकट का उपयोग कर सकते हैं: C: \ Windows \ System32 \ cmd.exe / A / Q /KC:\Qt\Qt5.1.1\5.1.1\msvc2012-64 \ bin \ qtenv2.bat & "C: \ Program Files (x86) \ Microsoft विज़ुअल स्टूडियो 11.0 \ VC \ vcvarsall.bat" x86_amd64 & cd c: \ YourDir इसके बारे में महत्वपूर्ण बात यह है कि x86_amd64 - इसके बिना पर्यावरण सेट है एक 32 बिट वातावरण के रूप में और qmake इसे इस तरह से उठाता है।
ग्रीमवेल

3

विजुअल स्टूडियो 2013 में,

1) प्रोजेक्ट प्रॉपर्टी पेज / कॉन्फ़िगरेशन प्रॉपर्टीज / लिंकर / ऑल ऑप्शन में चेक करें और सभी मिस कॉन्फिगरेड मशीन और डायरेक्ट्रीज को सही करें।

2) प्रोजेक्ट प्रॉपर्टी पेज / कॉन्फ़िगरेशन प्रॉपर्टीज / लिंकर / इनपुट में चेक करें और सभी मिस कॉन्फिगर की गई डाइरेक्टरीज़ को सही करें।

1 का उदाहरण देखें)


2

vcxproj फ़ाइल में 'MACHINE: i386' हो सकता है संपादक के साथ vcxproj फ़ाइल संपादित करें। इसे हटा दो !


1
"project property - CUDA Runtime API - GPU - NVCC Compilation Type"

64 बिट संकलन विकल्प सेट करें -m64 -cubin

संकेत संकलन लॉग पर है। ऐशे ही:

nvcc.exe ~~~~~~ -machine 32 -ccbin ~~~~~

वह "-machine 32"समस्या है।

पहले 64bit संकलन विकल्प सेट करें, अगला हाइब्रिड संकलन विकल्प फिर से सेट करें। तब u सफल देख सकते हैं।


1

यदि आपके समाधान में आवश्यक प्रोजेक्ट्स हैं, तो प्रॉपर्टी में टारगेट मशीन की जांच करें-> लाइब्रेरियन-> जनरल


1

झोंसन की सूची के अलावा, लाइब्रेरी के फ़ोल्डर भी देखें

दृश्य स्टूडियो में, मुख्य मेनू से टूल्स> विकल्प चुनें। प्रोजेक्ट्स और सॉल्यूशन्स> VC ++ निर्देशिकाएँ चुनें। प्लेटफ़ॉर्म ड्रॉपडाउन से x64 का चयन करें।

$(VCInstallDir)lib\AMD64;
$(VCInstallDir)atlmfc\lib\amd64;
$(WindowsSdkDir)lib\x64;

1

यह मेरे साथ आज हुआ क्योंकि मैंने x86 मोड में रहते हुए भी एक लाइब्रेरी डायरेक्टरी जोड़ दी थी, और गलती से विरासत में मिली डाइरेक्टरी को हटा दिया, जिससे उन्हें हार्डकोड किया गया। तब x64 पर स्विच करने के बाद, मेरे VC ++ निर्देशिकाएँ अभी भी पढ़ें:

"...; $ (VC_LibraryPath_x86); $ (WindowsSDK_LibraryPath_x86);"

_x64 के बजाय।


धन्यवाद। यही मेरी समस्या थी। भविष्य के पाठकों के लिए, मेरी "लाइब्रेरी निर्देशिकाएँ" अब पढ़ती है$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;
Phlox Midas

1

मैं CMake का उपयोग कर रहा था और फिर एक win32 कॉन्फ़िगरेशन जोड़ा। संपत्ति पृष्ठ में x86 दिखाया गया था, लेकिन वास्तव में एक पाठ संपादक में vcxproj फ़ाइल खोलने पर यह x64 था! मैन्युअल रूप से बदलकर x86 ने इसे हल कर दिया।


2
मेरा भी कुछ ऐसा ही था। मुझे नहीं पता कि कौन सी सेटिंग कहाँ छिपाई गई थी (और मैंने यहां अधिकांश उत्तरों की सलाह का पालन किया है), लेकिन जनरेटर को निर्दिष्ट करना मेरे अनुसार यह मेरे लिए था: सेमीक। -जी "विजुअल स्टूडियो 12 विन 64"।
user55937

1

यह एक बहुत ही निराशाजनक और कष्टप्रद समस्या है, लेकिन एक बार जब आप इसे समझ लेते हैं, तो यह काफी सरल होता है: आपके पास कुछ तत्व होते हैं जो कि एक आर्किटेक्चर प्रकार (आपके मामले में x64) का निर्माण करते हैं, इस तथ्य के बावजूद कि यह दूसरे प्रकार के लिए लक्षित है (x86 कहते हैं) )।

आप अपनी समस्या के स्रोत को देखकर यह अनुमान लगा सकते हैं कि कौन सी obj फ़ाइल दुर्घटना का कारण बन रही है और वहाँ समस्या की तलाश शुरू करें। प्रत्येक obj में एक स्रोत कोड एनालॉग होगा: या तो cpp, c, asm आदि में। इसके आसपास विशेष बिल्ड ईवेंट हो सकते हैं जो गलत टूल का उपयोग कर रहे हैं। प्रॉपर्टी शीट में उसके लिए जाँच करें।

मैं सी जॉन्सन की चीजों की सूची में जाने से पहले पहले वहां देखूंगा।



0

मॉड्यूल मशीन प्रकार वह मशीन है जिस पर आप संकलित कर रहे हैं और लक्ष्य मशीन प्रकार आर्किटेक्चर x86 या x64 है जिसके लिए आप अपने बायनेरिज़ का निर्माण कर रहे हैं।


0

यह समस्या तब भी हो सकती है जब आपके प्रोजेक्ट को प्रोजेक्ट गुण -> कॉन्फ़िगरेशन गुण -> सामान्य में समान मध्यवर्ती निर्देशिकाएं हों


0

सबसे पहले निम्नलिखित चीजों को आज़माएं: 1. गोटो कॉन्फ़िगरेशन मैनेजर और एक नया x64 बनाएं यदि यह पहले से ही नहीं है। 2. x64 समाधान का चयन करें। 3. प्रोजेक्ट प्रॉपर्टीज पर जाएं और फिर Linker-> एडवांस सिलेक्ट x64 मशीन। 4. अब समाधान का पुनर्निर्माण करें।

यदि फिर भी आपको वही त्रुटि मिल रही है। स्वच्छ समाधान का प्रयास करें और फिर से पुनर्निर्माण करें और दृश्य स्टूडियो खोलें आपको हाल ही में खोले गए प्रोजेक्ट की सूची मिलेगी, प्रोजेक्ट पर राइट क्लिक करें और इसे वहां से हटा दें। अब समाधान पर जाएं और समाधान को फिर से खोलें।


0

यह तब होता है जब मैं अपने VS2008 समाधान को VS2010 में परिवर्तित करता हूं और win32 कॉन्फ़िगरेशन को X64 में बदल देता हूं, अपने पुराने समाधान में मेरे पास mfcs90d.lib (कॉन्फ़िगरेशन-> लिंकर-> इनपुट-> अतिरिक्त निर्भरता) है, क्योंकि मैं VS010 का उपयोग कर रहा हूं। VS2010 फ़ोल्डर में जहां यह mfcs100d.lib है, इसलिए मैंने mfcs90d.lib को mfcs100d.lib में बदल दिया (कॉन्फ़िगरेशन-> लिंकर-> इनपुट-> अतिरिक्त निर्भरता) इसने ठीक काम किया।


0

जो लोग क्यूटी क्रिएटर के साथ हैं, उनके लिए यह समस्या समान है (जैसा कि @ c-johnson द्वारा वर्णित है)। सुनिश्चित करें कि आपके किट में MSVC के लिए संकलक सेटिंग्स x86 पर सेट है जैसा कि नीचे दिखाया गया है।

MSVC x86 कंपाइलर के लिए qt क्रिएटर किट सेटिंग्स


0

कमांड प्रॉम्प्ट (डॉस प्रॉम्प्ट) का उपयोग करने वाले कुछ लोगों के लिए यह उपयोगी हो सकता है:

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" --help
Error in script usage. The correct usage is:
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" [option]
  or
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" [option] store
  or
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" [option] [version number]
  or
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" [option] store [version number]
where [option] is: x86 | amd64 | arm | x86_amd64 | x86_arm | amd64_x86 | amd64_arm
where [version number] is either the full Windows 10 SDK version number or "8.1" to use the windows 8.1 SDK
:
The store parameter sets environment variables to support
  store (rather than desktop) development.
:
For example:
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_arm store
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 10.0.10240.0
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_arm store 10.0.10240.0
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 8.1
    "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 store 8.1
:
Please make sure either Visual Studio or C++ Build SKU is installed.

इसके अलावा अगर आप ऐसा करते हैं:

सीएल "% 1% 2% 3" / EHsc / लिंक user32.lib Gdi32.lib Winmm.lib comctl32.lib * .obj / SUBSYSTEM : CONSOLE / MACHINE: x86

आपको पहले * .obj को डेल करना होगा ; पूर्व संकलनों से बचे 64 और 32 बिट ऑब्जेक्ट्स के साथ भ्रमित करने वाले लिंक से बचने के लिए?


0

ऊपर कई अच्छे सुझाव।

इसके अलावा अगर आप x86 Win32 में निर्माण करने की कोशिश कर रहे हैं:

सुनिश्चित करें कि आपके द्वारा प्रोग्राम फाइल्स (x86) में लिंक की गई कोई भी लाइब्रेरी वास्तव में x86 लाइब्रेरी है क्योंकि वे जरूरी नहीं हैं ...

उदाहरण के लिए मैं C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ प्रोफेशनल \ SDK से जुड़ा हुआ एक गलत फ़ाइल उस त्रुटि को फेंक दिया, अंततः मुझे C: \ Program Files (x86) \ Windows में इसका x86 संस्करण मिला किट्स \ 10 \ Lib \ 10.0.18362.0 \ um \ x86 और सब कुछ ठीक काम किया।


-1

OS क्या है? अगर यह एक विंडोज़ x64 है तो आपको यह सुनिश्चित करने की आवश्यकता है कि CUDA x64 स्थापित किया गया था और इस प्रकार VS2008 को x64 मोड में प्रोजेक्ट को संकलित करना चाहिए ...

CUDA केवल विंडोज़ में x64 या x86 स्थापित करेगा


निर्माण करते समय और लिंक करने का प्रयास करते समय यह एक त्रुटि प्रतीत होती है। मूल रूप से इसकी बेमेल या असंगतता सेटिंग सेटिंग्स में है; लक्ष्य मंच जिसे विभिन्न बिल्ड चरणों के लिए एक पैरामीटर के रूप में निर्दिष्ट किया जा सकता है, सुसंगत नहीं है।
शम्मी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.