মারাত্মক ত্রুটি LNK1112: মডিউল মেশিন টাইপ 'x64' টার্গেট মেশিন টাইপ 'X86' এর সাথে দ্বন্দ্ব


187

আমি এফইএম প্রোগ্রামটি ডিবাগ করার জন্য CUDA (ভিসি ++, ভিজ্যুয়াল স্টুডিও 2008sp1) ব্যবহার করছি। চুদা অপর্যাপ্ততার জন্য প্রোগ্রামটি কেবল একটি Win32 প্ল্যাটফর্মে চলতে পারে। আমার মনে হয় লিঙ্কিত লাইব্রেরি ফাইলগুলি সমস্ত x86 প্ল্যাটফর্মে সংকলিত হয়েছে, তবে আমি এটি সংকলন করার সময় আমি ত্রুটি বার্তাটি পাই "মারাত্মক ত্রুটি LNK1112: মডিউল মেশিন টাইপ 'x64' টার্গেট মেশিনের ধরণের 'X86'" এর সাথে দ্বন্দ্ব ”।

আমি প্ল্যাটফর্মটি x64 এ রূপান্তর করার চেষ্টা করেছি, তবে এটি কার্যকর হয়নি। দয়া করে আমাকে বলুন: "মডিউল মেশিন টাইপ" কী এবং "টার্গেট মেশিন টাইপ" কী? আমি কীভাবে এটি কাটিয়ে উঠতে পারি?

উত্তর:


261

আমি এই সম্পর্কে একটি ব্লগ এন্ট্রি লিখেছিলাম , কারণ আমি এই পাগলামি সমস্যাটির মুখোমুখি হয়েছি এবং অবশেষে আমার সিস্টেমটিকে কার্যক্রমে ফিরিয়ে এনেছি।

এই ক্রমে এই জিনিসগুলি পরীক্ষা করা হয়:

  1. আপনার লিংকার সেটিংসে আপনার বৈশিষ্ট্যগুলির বিকল্পগুলি এখানে পরীক্ষা করুন: বৈশিষ্ট্য> কনফিগারেশন বৈশিষ্ট্য> লিংক> উন্নত> টার্গেট মেশিন। আপনি যদি একটি 64 বিট বিল্ড লক্ষ্যবস্তু করছেন তবে মেশিনএক্স 64 নির্বাচন করুন বা আপনি যদি 32 বিট বিল্ড করছেন তবে মেশিনএক্স 86 নির্বাচন করুন।

  2. ভিজ্যুয়াল স্টুডিওর মূল মেনু থেকে বিল্ড> কনফিগারেশন ম্যানেজার নির্বাচন করুন। আপনার প্রকল্পের সঠিক প্ল্যাটফর্ম নির্দিষ্ট করা আছে তা নিশ্চিত করুন। আইডিইর জন্য x64 তৈরির জন্য সেট করা সম্ভব তবে সমাধানের একটি পৃথক প্রকল্প win32 টার্গেট করতে সেট করা যেতে পারে। হ্যাঁ, ভিজ্যুয়াল স্টুডিও নিজেকে ফাঁসানোর জন্য অনেক দড়ি ফেলেছিল, তবে তা জীবন।

  3. আপনার লাইব্রেরি ফাইলগুলি যা সত্যই প্ল্যাটফর্মের ধরণের লক্ষ্যবস্তুতে রয়েছে তা পরীক্ষা করুন। এটি আপনার ভিজ্যুয়াল স্টুডিও ভিসি-বিন ডিরেক্টরিতে থাকা ডাম্পবিন.এক্সই ব্যবহার করে ব্যবহার করা যেতে পারে। আপনার সমস্ত ফাংশন ডাম্প করতে হেডারের বিকল্পটি ব্যবহার করুন। প্রতিটি ফাংশনের জন্য মেশিনের প্রবেশের সন্ধান করুন। এটি যদি একটি 64 বিট বিল্ড হয় তবে এটি x64 অন্তর্ভুক্ত করা উচিত।

  4. ভিজ্যুয়াল স্টুডিওতে, প্রধান মেনু থেকে সরঞ্জামগুলি> বিকল্পগুলি নির্বাচন করুন। প্রকল্প এবং সমাধান> ভিসি ++ ডিরেক্টরি নির্বাচন করুন। প্ল্যাটফর্মের ড্রপডাউন থেকে x64 নির্বাচন করুন। নিশ্চিত হয়ে নিন যে প্রথম এন্ট্রিটি: V (ভিসিআইন্সটলডির) \ বিন \ x86_amd64 এর পরে $ (ভিসিআইন্সটলডির) \ বিন

একবার আমি পদক্ষেপ 4 করলাম আমার জন্য আবার কাজ করে। জিনিসটি ছিল আমি আমার সমস্ত প্রকল্পগুলিতে এই সমস্যাটির মুখোমুখি হয়েছি যেখানে আমি একটি bit৪ বিটের লক্ষ্য নির্ধারণ করতে চেয়েছিলাম।


6
জীবন রক্ষাকারী চতুর্থ ধাপে, "লাইব্রেরি ডিরেক্টরিগুলি" এছাড়াও
গ্রেগরি

37
যারা ভিজ্যুয়াল স্টুডিও 2013 ব্যবহার করছেন তাদের জন্য - পদক্ষেপ 4
অবমূল্যায়ন

3
আপনি যদি x86 হিসাবে সংকলিত একটি বাহ্যিক গ্রন্থাগার ব্যবহার করেন তবে আপনি এই ত্রুটিটি পেয়েও যাবেন। গুগল টেস্ট ল্যাবগুলি ব্যবহার করে একটি প্রকল্প তৈরি করার চেষ্টা করার সময় আমি এতে ছুটে এসেছি।
কায়লিফ্রি_ডোনেক

3
আমার কাছে যদি কোনও প্রকল্পের ফাইল না থাকে (একটি মেকফাইলে এনমেক চলমান) তবে আমি কীভাবে একই কাজ করব?
ব্যবহারকারী 118967

3
আপনি জিইউআই সংস্করণে কোনও প্রকল্প তৈরির পরিবর্তে কমান্ড লাইনে এটি কীভাবে করতে পারেন?
repzero

152

সি জনসন তালিকার পাশাপাশি আমি নিম্নলিখিত বিষয়গুলি যুক্ত করব:

ভিজ্যুয়াল স্টুডিওতে চেক করুন:
প্রকল্পের বৈশিষ্ট্য -> কনফিগারেশন বৈশিষ্ট্য -> লিংক -> কমান্ড লাইন।

"অতিরিক্ত বিকল্পগুলি" থাকা উচিত নয় /machine:X86

আমার কাছে সিএমকে আউটপুট দ্বারা উত্পন্ন এমন কী রয়েছে: সিএমকে x86 প্রকল্প উত্পন্ন করেছে, তারপরে আমি Configuration Managerভিজ্যুয়াল স্টুডিও ২০১০-এর মাধ্যমে x64 প্ল্যাটফর্ম যুক্ত করেছি - লিংক কমান্ড লাইনটি /machine:X86পৃথকভাবে নির্দিষ্ট করা ছাড়া নতুন প্ল্যাটফর্মের জন্য সবকিছুই তৈরি করা হয়েছিল ।


20
এটাই ছিল আমার সমস্যা! তবে এটি একটি সিএমকে উত্পাদিত ভিজ্যুয়াল স্টুডিও 2017 প্রকল্প ছিল যেখানে আমি x64 প্ল্যাটফর্ম বিল্ড কনফিগারেশন তৈরি করতে কনফিগারেশন ম্যানেজার ব্যবহার করেছি (যেখানে উইন 32 বিল্ড কনফিগারেশনগুলি x64 বিল্ড কনফিগারেশনগুলি তৈরি করার জন্য অনুলিপি করা হয়েছিল)। যা ঘটে তা হ'ল লিঙ্কারের "/ MACHINE:" সেটিংস "সমস্ত বিকল্প-> অতিরিক্ত বিকল্প" এবং "অ্যাডভান্সড-> টার্গেট মেশিন" বিরোধের মধ্যে। ঠিক করতে, কেবলমাত্র "সমস্ত বিকল্প-> অতিরিক্ত বিকল্প" -> "/ MACHINE:" সেটিংস মুছুন।
বোইসবেড

2
এটি সম্ভবত আমার কয়েক ঘন্টা সাশ্রয় করেছে। ধন্যবাদ!
RSSp1984

3
এটি আমার জন্য স্থির ছিল তাই কেবল ধন্যবাদ বলতে চেয়েছিল, অদ্ভুতভাবে আমি ইতিমধ্যে উঁচু করে ফেলেছিলাম তাই একই সমস্যাটি নিয়ে আমি এখানে অবশ্যই এখানে উপস্থিত ছিলাম! :)
অ্যাডাম ড্যাম্পসে

1
এই সমাধানটির সামান্যতম রূপ: আমার সমাধানের কয়েকটি প্রকল্পের কনফিগারেশন বৈশিষ্ট্যে "লিঙ্কার" নেই। পরিবর্তে তাদের "লাইব্রেরিয়ান" রয়েছে। এই ক্ষেত্রে, লাইব্রেরিয়ান -> সমস্ত বিকল্প -> অতিরিক্ত বিকল্পগুলি বলেছেন / মেশিন: x86 যখন গ্রন্থাগারিক -> সমস্ত বিকল্প -> লক্ষ্য মেশিন বলেছেন / মেশিন: x64। আমি লাইব্রেরিয়ান -> সমস্ত বিকল্প -> অতিরিক্ত বিকল্প ... এবং অবশেষে বিল্ট এবং লিঙ্কযুক্ত জিনিসগুলি থেকে x86 মুছলাম।
Xenial

এই টিপস জন্য ধন্যবাদ। এটি সিএমকে ব্যবহারকারীদের কাছে একটি সাধারণ সমস্যা বলে মনে হচ্ছে। ভোট আপ।
হাও Xi

54

VS2008 এ আমি একই সমস্যাটি অনুভব করেছি যখন আমি VS2003 থেকে রূপান্তরিত কোনও প্রকল্পে একটি এক্স 64 বিল্ড যুক্ত করার চেষ্টা করেছি tried

গুগলে এই ত্রুটিটি অনুসন্ধান করার সময় আমি প্রাপ্ত সমস্ত কিছুর দিকে লক্ষ্য করেছি (টার্গেট মেশিন, ভিসি ++ ডিরেক্টরি, ডাম্পবিন ....) এবং সবকিছু ঠিক আছে বলে মনে হচ্ছে।

অবশেষে আমি একটি নতুন পরীক্ষার প্রকল্প তৈরি করেছিলাম এবং একই পরিবর্তনগুলি করেছি এবং দেখে মনে হচ্ছে এটি কার্যকর হবে।

Vcproj ফাইলগুলির মধ্যে পার্থক্য করার ফলে সমস্যাটি প্রকাশিত হয়েছে ....

আমার রূপান্তরিত প্রকল্পটিতে লিঙ্কার-> কমান্ড লাইনের অধীনে অতিরিক্ত বিকল্প সেট হিসাবে i386 সেট করা হয়েছে / MACHINE: সুতরাং দুটি / ম্যাচিন অপশন সেট ছিল (x64 এবং i386 উভয়) এবং অতিরিক্ত একটি অগ্রাধিকার নিয়েছে।

এটি মুছে ফেলা এবং লিংকার-> অ্যাডভান্সড-> টার্গেট মেশিনের অধীনে এটিকে সঠিকভাবে সেট করা সমস্যার অদৃশ্য হয়ে গেছে।


8
এটিও আমার সমস্যাটি ছিল ঠিক - তবে এটি একটি ভিজ্যুয়াল স্টুডিও সমাধান থেকে এসেছে যা সিএমকে ব্যবহার করে তৈরি করা হয়েছিল। দেখে মনে হচ্ছে সিএমকে এই বিকল্পটি যুক্ত করতে পছন্দ করে।
নিক চাদউইক

4
আমি একটি সিএমকে প্রকল্প থেকে এসেছি এবং এটি এই বিকল্পটি যুক্ত করেছে তা নিশ্চিত করতে পারি।
BeeOnRope

25

সমস্ত প্রকল্প সেটিংস নিখুঁত বলে মনে হয়েছিল, তবে আমি তবুও ত্রুটি পেয়েছি। মধ্যে খুঁজছেন .vcxprojফাইল এবং "এক্স 86" দিয়ে অনুসন্ধান সমস্যা প্রকাশ:

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

সমস্ত ঘটনার জন্য দ্রুত অনুসন্ধান / প্রতিস্থাপন (দশটি পৃথক ফাইল সেটিংস) সমস্যার সমাধান করেছে।


3
প্রকল্পের বৈশিষ্ট্যগুলিতে -> কনফিগারেশন বিকল্পগুলি -> গ্রন্থাগারিক -> সমস্ত বিকল্প -> অতিরিক্ত বিকল্পসমূহ।
Xenial

13

সমস্যাটি সংকলন এবং লক্ষ্য মেশিনের স্পেসিফিকেশনের পার্থক্যের কারণে (x86 এবং x64) নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. আপনি কনফিগার করতে চান এমন সি ++ প্রকল্পটি খুলুন।
  2. কনফিগারেশন ম্যানেজার ডায়ালগ বক্স খুলতে কনফিগারেশন ম্যানেজার বোতামটি চয়ন করুন।
  3. অ্যাক্টিভ সলিউশন প্ল্যাটফর্ম ড্রপ-ডাউন তালিকায়, নতুন সলিউশন প্ল্যাটফর্ম ডায়ালগ বাক্সটি খুলতে বিকল্পটি নির্বাচন করুন।
  4. নতুন প্ল্যাটফর্মের ড্রপ-ডাউন তালিকায় টাইপ করুন বা নির্বাচন করুন, একটি 64-বিট প্ল্যাটফর্ম নির্বাচন করুন।

এটি আমার সমস্যার সমাধান করেছে।


12

আপনি x86 এর সাথে সংযোগ স্থাপন করার সময় আপনার কাছে সম্ভবত একটি .OBJ বা .LIB ফাইল রয়েছে যা x64 (এটি মডিউল মেশিনের ধরণের) জন্য লক্ষ্যযুক্ত।

আপনার .OBJ ফাইলগুলিতে ডাম্পবিন / শিরোনাম ব্যবহার করুন এবং ফাইলের হেডার ভ্যালু ব্লকটিতে মেশিনের প্রবেশের জন্য পরীক্ষা করুন।


3
আমি যখন এই ত্রুটি বার্তার মুখোমুখি হই তখন এটিই আমার পক্ষে মূল কারণ ছিল। আমি এর আগে একটি আর্কিটেকচারের জন্য তৈরি করেছিলাম এবং আগের বিল্ডটি থেকে অবজেক্ট ফাইল এবং লিবগুলি সঠিকভাবে পরিষ্কার করা হয়নি। পূর্ববর্তী বিল্ড থেকে সমস্ত পুরানো .obj এবং .lib ফাইল মুছে ফেলার পরে, আমি আমার প্রকল্পটি নতুন স্থাপত্যের সাথে সংকলন করতে সক্ষম হয়েছি।
বেন

এটি আমার ইস্যু ছিল এবং লক্ষ্যটি ছিল আর্কিটেকচার পরিবর্তন করার সময় বিল্ডিংয়ের আগে পরিষ্কার করা।

7

ভিজ্যুয়াল স্টুডিও 2012 +/- এ, "কনফিগারেশন প্রোপার্টি'স.লিংকারের জন্য সম্পত্তি পৃষ্ঠা" "কমান্ড লাইন" এ "অতিরিক্ত বিকল্পগুলি" লেবেলযুক্ত একটি বাক্স রয়েছে you're আপনি যদি x64 তৈরি করছেন, নিশ্চিত করুন যে বাক্সটিতে / MACHINE নেই: I386 আমার প্রকল্পগুলি করেছে এবং এটি সমস্যার মধ্যে ত্রুটি তৈরি করেছে।


4

কিউটি নির্মাণের সময় আমি এই সমস্যাটি পেলাম। আমি কোথাও যে নির্দেশাবলী পড়েছি সেগুলি থেকে আমি ভিএস কমান্ড প্রম্পট ব্যবহার করে নমকে কনফিগার করার পরামর্শ দিয়েছিলাম।

আমি x64 কমান্ড প্রম্পটটি বেছে নিয়েছি এবং কোনও ঝামেলা ছাড়াই কনফিগার সম্পাদন করেছি। আমি যখন নমকে চেষ্টা করেছি, তখন এই ত্রুটিটি ঘটেছে।

আমি মনে করি কিছু উপাদান 32-বিটের জন্য পূর্ব-নির্মিত ছিল। এমনকি ত্রুটিটি জানায় যে x86 এর জন্য কোন মডিউলগুলি নির্মিত হয়েছিল।

আমি 32 বিট ডিফল্ট ভিএস কমান্ড প্রম্পট ব্যবহার করেছি এবং এটি কার্যকর হয়েছে।


4
এটি আমাকে সঠিক পথে রাখে। আপনি যদি bit৪ বিটের জন্য বিল্ডিং করেন তবে আপনি আপনার পরিবেশ সেট আপ করতে এই উইন্ডোজ শর্টকাটটি ব্যবহার করতে পারেন: সি: \ উইন্ডোজ \ সিস্টেম 32 \ সেমিডি.এক্সই / এ / কিউ / কেসি: \কিউটি কিউটি 5.1.155.1.1\msvc2012_64 \ bin \ qtenv2.bat & "C: \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 11.0 \ ভিসি \ vcvarsall.bat" x86_amd64 এবং সিডি সি: \ আপনার ডিআর সম্পর্কে গুরুত্বপূর্ণ অংশটি x86_amd64 - পরিবেশটি সেট না করেই একটি 32 বিট পরিবেশ হিসাবে আপ এবং qmake যেমন এটি আপ আপ।
গ্রিমওয়েল

3

ভিজ্যুয়াল স্টুডিও 2013 এ,

1) প্রকল্প সম্পত্তি পৃষ্ঠা / কনফিগারেশন বৈশিষ্ট্য / লিংক / সমস্ত বিকল্পগুলি পরীক্ষা করে দেখুন এবং সমস্ত মিস কনফিগার করা মেশিন ও ডিরেক্টরিগুলি সংশোধন করুন।

2) প্রকল্প সম্পত্তি পৃষ্ঠা / কনফিগারেশন বৈশিষ্ট্য / লিংক / ইনপুট পরীক্ষা করুন এবং সমস্ত মিস কনফিগার ডিরেক্টরিগুলি সংশোধন করুন।

1 এর উদাহরণ দেখুন)



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

64 বিট সংকলন বিকল্প সেট করুন -m64 -cubin

ইঙ্গিতটি সংকলন লগ এ আছে। এটার মত:

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

যে "-machine 32"সমস্যা।

প্রথম সেট 64 বিট কমপাইল অপশন, পরের পুনরায় সেট সংকর সংকলন বিকল্প। তাহলে আপনি সফল দেখতে পাবেন can


1

আপনার সমাধানটিতে যদি প্রকল্পগুলি থাকে তবে সম্পত্তি-> গ্রন্থাগারিক>> জেনারেল লক্ষ্যযুক্ত মেশিনের সম্পত্তি পরীক্ষা করুন


1

ঝনসনের তালিকার পাশাপাশি লাইব্রেরির ফোল্ডারগুলিও পরীক্ষা করে দেখুন

ভিজ্যুয়াল স্টুডিওতে, প্রধান মেনু থেকে সরঞ্জামগুলি> বিকল্পগুলি নির্বাচন করুন। প্রকল্প এবং সমাধান> ভিসি ++ ডিরেক্টরি নির্বাচন করুন। প্ল্যাটফর্ম ড্রপডাউন থেকে x64 নির্বাচন করুন।

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

1

এটি আমার কাছে আজ ঘটেছিল কারণ x86 মোডে থাকাকালীন আমি একটি লাইব্রেরি ডিরেক্টরি যুক্ত করেছি এবং ঘটনাক্রমে উত্তরাধিকার সূত্রে প্রাপ্ত ডিরেক্টরিগুলি মুছে ফেলা হয়েছে, পরিবর্তে সেগুলি হার্ডকোডযুক্ত করে তুলেছি। তারপরে x64 এ স্যুইচ করার পরে, আমার ভিসি ++ ডিরেক্টরিগুলি এখনও পড়ে:

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

_x64 এর পরিবর্তে।


ধন্যবাদ। আমার সমস্যা ছিল। ভবিষ্যতের পাঠকদের জন্য, আমার "লাইব্রেরি ডিরেক্টরিগুলি" এখন পড়বে$(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);$(NETFXKitsDir)Lib\um\x64;
Phlox Midas

1

আমি সিএমকে ব্যবহার করছিলাম এবং তারপরে একটি win32 কনফিগারেশন যুক্ত করেছি। সম্পত্তি পৃষ্ঠাটি x86 দেখিয়েছে তবে আসলে কোনও পাঠ্য সম্পাদকটিতে vcxproj ফাইলটি খোলার সময় এটি x64 ছিল! ম্যানুয়ালি x86 এ পরিবর্তন করা এটি সমাধান করেছে।


2
আমারও তেমন কিছু ছিল। আমি জানি না যে কোন সেটিংটি কোথায় লুকিয়ে ছিল (এবং আমি এখানে বেশিরভাগ উত্তরের পরামর্শ অনুসরণ করেছি), তবে সেই অনুযায়ী জেনারেটরটি নির্দিষ্ট করে তা আমার জন্য করেছিল: সিএমকে। -জি "ভিজ্যুয়াল স্টুডিও 12 উইন 64"।
ব্যবহারকারী55937

1

এটি খুব হতাশাব্যঞ্জক এবং বিরক্তিকর সমস্যা তবে আপনি এটি বুঝতে পারলে এটি একদম সহজ: এটি অন্য ধরণের লক্ষ্যবস্তু হওয়া সত্ত্বেও আপনার একটি উপাদান রয়েছে যা একটি আর্কিটেকচার ধরণের (আপনার ক্ষেত্রে x64) নির্মাণ করছেন (x86 বলুন )।

কোন সমস্যা ফাইলটি ক্র্যাশ ঘটছে তা দেখে আপনি আপনার সমস্যার উত্সটি বিচ্ছিন্ন করতে পারেন এবং সেখানে সমস্যার সন্ধান শুরু করতে পারেন। প্রতিটি বস্তুর সোর্স কোড অ্যানালগ থাকবে: সিপিপি, সি, এসএম ইত্যাদিতে এর চারপাশে বিশেষ বিল্ড ইভেন্ট থাকতে পারে যা ভুল সরঞ্জামটি ব্যবহার করছে। সম্পত্তি শীট মধ্যে এটি পরীক্ষা করুন।

সি জনসনকে করণীয় তালিকার মধ্য দিয়ে যাওয়ার আগে আমি সেখানে প্রথমে দেখতে চাই।


1

আমি ভিজ্যুয়াল স্টুডিও 2013-তে উইন 32 কে * 64 এ পরিবর্তন করে এই সমস্যার সমাধান করেছি।


0

মডিউল মেশিন টাইপ হ'ল সেই মেশিনটি যার উপর আপনি সংকলন করছেন এবং লক্ষ্য মেশিন প্রকারটি সেই আর্কিটেকচার x86 বা x64 যার জন্য আপনি বাইনারি তৈরি করছেন।


0

যদি আপনার প্রকল্পটি প্রকল্পের বৈশিষ্ট্যগুলিতে একই ইন্টারমিডিয়েট ডিরেক্টরিগুলি>> কনফিগারেশন বৈশিষ্ট্য -> সাধারণ স্থাপন করে থাকে তবে এই সমস্যাও ঘটতে পারে


0

প্রথমে নীচের জিনিসগুলি ব্যবহার করে দেখুন: 1. গোপনে কনফিগারেশন ম্যানেজার এবং এটি ইতিমধ্যে না থাকলে একটি নতুন x64 তৈরি করুন। 2. x64 সমাধান নির্বাচন করুন। ৩. প্রকল্পের বৈশিষ্ট্যগুলিতে যান এবং তার পরে লিংকার-> উন্নত নির্বাচন করুন x64 মেশিন। ৪. এখন সমাধানটি পুনর্নির্মাণ করুন।

এখনও যদি আপনি একই ত্রুটি পাচ্ছেন। পরিষ্কার সমাধান চেষ্টা করুন এবং তারপরে আবার পুনর্নির্মাণ করুন এবং ভিজ্যুয়াল স্টুডিও খুলুন আপনি সাম্প্রতিক খোলার প্রকল্পের তালিকা পাবেন, প্রকল্পে ডান ক্লিক করুন এবং সেখান থেকে সরিয়ে ফেলুন। এখন সমাধানে যান এবং সমাধানটি আবার খুলুন।


0

আমি আমার VS2008 সমাধানটি ভিএস 2010 এ রূপান্তর করি এবং উইন 32 কনফিগারেশনটি এক্স 64 এ পরিবর্তন করি যখন আমার পুরানো সমাধানে আমার এমএফসিএস 90 ডি.লিব রয়েছে (কনফিগারেশন-> লিংকার-> ইনপুট-> অতিরিক্ত নির্ভরতা), যেমন আমি VS010 ব্যবহার করেছি তখনই আমি পরীক্ষা করেছি VS2010 ফোল্ডারে যেখানে এটি mfcs100d.lib, তাই আমি mfcs90d.lib পরিবর্তন করে mfcs100d.lib (কনফিগারেশন-> লিংকার-> ইনপুট-> অতিরিক্ত নির্ভরতা) এটি ঠিকঠাকভাবে কাজ করে।


0

যারা কিউটি ক্রিয়েটারের সাথে আছেন তাদের ক্ষেত্রে সমস্যাটি একই (@ সি-জনসন দ্বারা বর্ণিত)। আপনার কিটটিতে এমএসভিসির জন্য সংকলক সেটিংসটি নীচের মত x86 এ সেট করা আছে তা নিশ্চিত করুন।

এমএসভিসি x86 সংকলকের জন্য কিউটি ক্রিয়েটার কিট সেটিংস


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" / ইএইচএসএস / লিঙ্ক ব্যবহারকারী 32.লিব জিডি 32.লিব উইনম.লিব comctl32.lib * .obj / সাবস্কিস্টেম: কনসোল / মেশিন: x86

আপনাকে আগে ডেল * .ওবজ করতে হবে ; পূর্ববর্তী সংকলনগুলি থেকে 64 এবং 32 বিট উভয় অবজেক্টের সাথে বিভ্রান্তিকর লিঙ্কার এড়াতে?


0

উপরে অনেক ভাল পরামর্শ।

এছাড়াও আপনি যদি x86 উইন 32 এ নির্মাণের চেষ্টা করছেন:

নিশ্চিত করুন যে আপনি প্রোগ্রাম ফাইলগুলিতে (x86) লিঙ্কযুক্ত যে কোনও লাইব্রেরি আসলে x86 গ্রন্থাগার কারণ সেগুলি অগত্যা নয় ...

উদাহরণস্বরূপ সি: Files প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও \ 2019 \ পেশাদার \ এসডিকে সেই ত্রুটিটি ফেলেছিলাম, শেষ পর্যন্ত আমি সি এর একটি x86 সংস্করণ পেয়েছি: \ প্রোগ্রাম ফাইল (x86) \ উইন্ডোজ কিটস \ 10 \ Lib \ 10.0.18362.0 \ um \ x86 এবং সবকিছু ঠিকঠাক কাজ করেছে।


-1

ওএস কি? এটি যদি উইন্ডোজ এক্স 64 হয় তবে আপনার অবশ্যই এটি নিশ্চিত করা দরকার যে CUDA x64 ইনস্টল করা হয়েছিল এবং সুতরাং VS2008 কে প্রকল্পটি x64 মোডে সংকলন করা উচিত ...

CUDA উইন্ডোগুলিতে কেবল x64 বা x86 ইনস্টল করবে


নির্মাণ এবং লিঙ্ক দেওয়ার চেষ্টা করার সময় এটি একটি ত্রুটি বলে মনে হচ্ছে। মূলত এটি বিল্ড সেটিংসে একটি মেলে না বা অসঙ্গতি; লক্ষ্য প্ল্যাটফর্ম যা বিভিন্ন বিল্ড পদক্ষেপের জন্য প্যারামিটার হিসাবে নির্দিষ্ট করা যায় তা সামঞ্জস্যপূর্ণ নয়।
শাম্মি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.