একটি 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.