একটি 64 বিট মেশিনে 32 বিট বাইনারি সংকলন করতে সমস্যা


13

আমি এসি প্রোগ্রামটি 64 বিটের পরিবর্তে 32 বিট বাইনারি হিসাবে সংকলনের চেষ্টা করছি। আমি কেবল যোগ করে শুরু করেছি -m32এবং কিছু ত্রুটি পেয়েছি। কিছুটা জুড়ে গুগল করে আমি ia32-libs ইনস্টল করতে একটি নোট পেলাম। চলার apt-get install ia32-libsফলে এটি ইতিমধ্যে ইনস্টল করা হয়েছে এবং নতুন সংস্করণে একটি বিজ্ঞপ্তি পেয়েছে।

এটি ব্যর্থ হওয়া অবধি পরবর্তী প্রতিটি সহ লাইব্রেরির একটি চেইন রয়েছে:

/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory

এটি অন্যান্য 32 টি বিট সংস্করণ অন্তর্ভুক্ত করে বলে মনে হচ্ছে /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/ ...

আমি কী মিস করছি?

উত্তর:


40

লেকেনস্টেইনের উত্তর আমার কাছে প্রচুর বিদ্যমান প্যাকেজগুলির সাথে বিরোধী (64৪-বিট একেরিকের উপরে)।

আমি পরিবর্তে এটি করেছি, যা libc6-dev-i386প্যাকেজটিতে টানা :

apt-get install gcc-multilib

7

ia32-libsকিছু সামঞ্জস্যযোগ্য লাইব্রেরিতে এখনও মাল্টি আর্কে স্থানান্তরিত হয়নি contains ৩২-বিট লাইব্রেরি সংকলনের জন্য আপনাকে সি-র জন্য 32-বিট লাইব্রেরি এবং বিকাশ ফাইল ইনস্টল করতে হবে:

sudo apt-get install libc6-dev:i386

আরও দেখুন: ১১.১০-তে মাল্টিআরচ বৈশিষ্ট্যটি কি বল - মৃত্যুতে আর্কিটেকচার ইনস্টল করে মারা যায়?


ইনস্টল করা libc6-dev:i386পুরো gnu সংকলক স্যুটটি মুছে ফেলার জন্য জোর দিয়েছিল (যা আমাকে একটু হার্ট অ্যাটাক দিয়েছিল) তবে sudo apt-get install build-essentialসমস্ত কিছু ব্যবহারের পরে পুরোপুরি সঠিকভাবে কাজ করেছিল worked
— ম্যাট

আমার জন্য এটি এনভিডিয়া-কারেন্টও আনইনস্টল করে ... যদিও কোনও সমস্যা ছাড়াই পুনরায় ইনস্টল করা হয়েছে।
— জেফ

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