14.04.01 32-বিট: ক্রস-সংকলন করার সময় জি ++ 64-বিট অনুপস্থিত ফাইল অন্তর্ভুক্ত রয়েছে


8

সুতরাং, আমি 32-বিট জুবুন্টু 14.04.1 ইনস্টল করেছি। আমাদের কিছু ইন্টারফেস কোড রয়েছে যেখানে আমরা সমর্থন করি এমন বিভিন্ন প্ল্যাটফর্মগুলির জন্য এবং উইন্ডোজ ডিএলএলগুলির এসওগুলি প্রকাশ করার ইচ্ছা করি। (হ্যাঁ আমি জানি, বাইনারি রিলিজ খারাপ, তবে এখানে প্রাসঙ্গিকও নয়))

আমি -m32/ জিসিসি -m64/ জি ++ আর্গুমেন্ট ব্যবহার করে 32-বিট 14.04.01 দিয়ে 32-বিট এবং 64-বিট এসওগুলি তৈরি করার চেষ্টা করছি । 32-বিট সংস্করণটি দুর্দান্ত কাজ করে তবে 64-বিট সংস্করণটি ব্যর্থ হয়

/usr/include/c++/4.8/string:38:28: fatal error: bits/c++config.h: No such file or directory

অন্তর্ভুক্তগুলি পরীক্ষা করা হচ্ছে, সেই ফাইলটি সত্যই 32-বিটের জন্য উপস্থিত রয়েছে তবে 64৪-বিটের জন্য অনুপস্থিত।

সমস্যাটি গুগল করা, জিসিসি / জি ++ 4.6 এর জন্য এটি অতীতে ঘটেছে বলে মনে হয় তবে এটি স্থির হিসাবে চিহ্নিত করা হয়। তবে ১৪.০৪.১ জিসিসি / জি ++ ৪.৮ ব্যবহার করছে, যা জিসিসি / জি ++ ৪.৮ এর লাইব্রেরিগুলিতে একটি রিগ্রেশন রয়েছে তা বোঝায়। এটি কি এমন কিছু যা অন্য কেউ দেখেছেন?

প্রয়োজনে আমি 64.0-বিট 14.04.1 এর জন্য একটি নতুন ভিএম সেট আপ করতে এবং এটি সঠিক লাইব্রেরির সংস্করণগুলি তুলতে পারে কিনা তা দেখতে পেতাম। যদিও আমি সম্ভব না হলেও চাই না, কারণ আমার কাছে আরও কিছু জিনিস রয়েছে যা আমাকে আবারও ইনস্টল করতে হবে। এর চেয়ে ভাল সমাধান কি আছে? এবং যদি আমি 64৪-বিট ১৪.০৪.১ ইনস্টল করে ফেলেছি তবে আমি কি অন্য দিক থেকে অনুপস্থিত শিরোনাম ছাড়াই 32-বিটটিতে অবশ্যই ক্রস-সংকলন করতে সক্ষম হব?


... সম্ভবত আপনার প্রয়োজনীয় বিষয়গুলি "এখানে প্রাসঙ্গিক নয়" উল্লেখ করা এড়ানো উচিত কারণ এটি প্রাসঙ্গিক নয়।
মাইকেউইজ

2
আপনি কি g++-multilibপ্যাকেজ ইনস্টল করেছেন ?
স্টিল্ড্রাইভার 19

@ স্টিল্ড্রাইভার ধন্যবাদ - এটি ছিল! দেখে মনে হচ্ছে ডিফল্টরূপে 64-বিট ইনস্টলটি রয়েছে তবে 32-বিট ইনস্টলটি তা করে না। ঠিক আছে, আমার "কীভাবে একটি লিনাক্স বিল্ড ভিএম সেট আপ করবেন" চেকলিস্টে যুক্ত করতে অন্য কিছু। :) এটি বেসিক বলে মনে হতে পারে তবে একই সংকলনের ত্রুটির জন্য আমি অন্য ব্যক্তির প্রশ্নের উত্তর হিসাবে এটি খুঁজে পাইনি এবং আমি সত্যিই লিনাক্স বিশেষজ্ঞ নই।
গ্রাহাম

উত্তর:


9

-৪-বিট বিট / সি ++ কনফিগারেশন ফাইলটি g++-multilibপ্যাকেজ ইনস্টল করার মাধ্যমে ৩২-বিট সিস্টেমে (এবং তদ্বিপরীত) সরবরাহ করা হয় , সুতরাং আপনাকে সফ্টওয়্যার সেন্টার, সিনাপটিক অথবা টার্মিনালের সাহায্যে এই প্যাকেজটি ইনস্টল করতে হবে either

sudo apt-get install g++-multilib

এটি কেবলমাত্র একটি নির্ভরতা প্যাকেজ যা g++-4.8-multilibডিফল্ট জিসিসি / জি ++ সংস্করণের জন্য সমাধান করে এবং পরিবর্তে (32-বিটের উপর 64-বিট সংকলন lib64stdc++-4.8-dev) বা libx32stdc++-4.8-dev(-৪-বিটের উপর 32-বিট সংকলন ) নির্ভর করে - এটি এগুলির মধ্যে রয়েছে আসল শিরোনাম ফাইল।

প্লেইন সি সংকলকটির জন্য প্যাকেজের সমতুল্য সেট রয়েছে gcc


4
sudo apt-get install g++-5-multilibআমার প্রয়োজনীয় সংস্করণটি আমাকে পেয়েছে এটি যদি আপনার পক্ষে কাজ করে না, তবে sudo add-apt-repository ppa:ubuntu-toolchain-r/test && sudo apt-get updateনোটটিও আমার কনফিগারেশনের অংশ।
U007D
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.