gcc আর আপগ্রেড করার পরে আর কাজ করে না


8

উদাহরণ হিসাবে:

hsmyers@ubuntu:~/c_dev$ cat hello.c
#include <stdio.h>

int main(int argc,char **argv) {
printf("Hello World!\n");
return 0;
}
hsmyers@ubuntu:~/c_dev$ gcc -c -o hello.o hello.c
In file included from /usr/include/stdio.h:28:0,
             from hello.c:1:
/usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.

ত্রুটি বার্তাটি ঠিক করার চেষ্টা করার পরে পথে অনুমান করে কোথাও:

/ usr / bin / ld: crt1.o খুঁজে পাচ্ছে না: এরকম কোনও ফাইল বা ডিরেক্টরি নেই

আমি জিনিসগুলি পুরোপুরি ছাঁটাই করেছি। কেউ দয়া করে পরামর্শ দিতে পারেন?


আপনি কি ইতিমধ্যে libc-dev ইনস্টল করেছেন? এটি আমার জন্য সূক্ষ্ম সংকলন করে।
itnet7

উত্তর:


10

আপনাকে gcc-multilibএমন প্যাকেজ ইনস্টল করতে হবে যা আপনার 64 বিট অপারেশন সিস্টেমে 32 বিবিট নির্দিষ্ট শিরোনাম নিয়ে আসে।


0

এটি আমার জন্য একটি নতুন ইনস্টল ইনস্টল করে। /usr/include/x86_64-linux-gnu/bits/predefs.hlibc6-dev প্যাকেজ দ্বারা সরবরাহ করা হয়েছে, সম্ভবত এটি সঠিকভাবে ইনস্টল করা হয়নি?

আপনি এই প্যাকেজটির সাথে "পুনরায় ইনস্টল" করতে পারেন:

sudo apt-get install --reinstall libc6-dev

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

gcc --verbose -o hello hello.c

অন্তর্ভুক্ত ফাইলগুলির জন্য অনুসন্ধানের পথটি মুদ্রণ করা উচিত। খনি বলেছেন:

    # অন্তর্ভুক্ত <...> অনুসন্ধান এখানে শুরু হয়:
     /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include
     , / Usr / স্থানীয় / অন্তর্ভুক্ত
     /usr/lib/gcc/x86_64-linux-gnu/4.6.1/include-fixed
     , / Usr / অন্তর্ভুক্ত /, x86_64-লিনাক্স-GNU
     , / Usr / অন্তর্ভুক্ত

যদি তা একরকম না হয় তবে আমি বলতে পারি যে আপনার বিল্ড-অপরিহার্য প্যাকেজগুলির মধ্যে একটি সংস্করণ মিলছে না। আপনার কাছে gcc এর সঠিক সংস্করণ এবং libc6-dev প্যাকেজ রয়েছে কিনা তা পরীক্ষা করুন। এখনই একেরিকের জন্য, এগুলি হওয়া উচিত:

gcc           4:4.6.1-2ubuntu5
libc6-dev     2.13-20ubuntu5 

--verbose প্রচেষ্টার ফলে আছেন:
hsmyers

আমি কীভাবে উত্তর দেব? সর্বনিম্ন, আমার জিসিসির সংস্করণটি পরীক্ষামূলক হিসাবে তালিকাভুক্ত 7.7.০। এটি কীভাবে ইনস্টল করা হয়েছে তা আমার কোনও ধারণা নেই। যতদূর আমি বলতে পারি, libc6-dev ইনস্টল করা আছে। আমার অন্তর্ভুক্ত পাথগুলি: /usr/local/lib/gcc/i686-pc-linux-gnu/4.7.0/ অন্তর্ভুক্ত (এছাড়াও / অন্তর্ভুক্ত-স্থির) মান / usr / স্থানীয় / এর সাথে অন্তর্ভুক্ত। আমি ডিরেক্টরি হিসাবে বিট বা এর মধ্যে বিটস / প্রিডিএফএস খুঁজে পাচ্ছি না। আমি পুনরায় ইনস্টল করার চেষ্টা করব এবং কী হবে তা দেখুন।
hsmyers

পুনরায় ইনস্টল কোনও পার্থক্য করেনি। / Usr / অন্তর্ভুক্ত / i386-linux-gnu / বিট-এ বিট পাওয়া গেছে, জিসিসির অংশ হিসাবে দেখানো হয়নি পথগুলি অন্তর্ভুক্ত করে। আমার libc6-dev এর সংস্করণ আপনার সাথে মেলে।
hsmyers

আমি পরামর্শ দিচ্ছি যে gcc এর পরীক্ষামূলক (এবং উবুন্টু-মানক) সংস্করণটি আপনার সমস্যা। আমি এটি মুছে ফেলার এবং সংরক্ষণাগার থেকে 4.6.1 ইনস্টল করার পরামর্শ দেব।
জেরেমি কের

খুব আমি কী ভাবছিলাম --- অজ্ঞাত হওয়ার ছোট সমস্যা বাদে) এটি কীভাবে পেল এবং খ) কীভাবে এটি অপসারণ করা যায়। কোনও অ্যাপ্লিকেশন কী জিসিসির কাজ সরিয়ে ফেলবে? অথবা আমার সম্পূর্ণ প্যাকেজ নামটি লাগবে? সম্ভবত i686-pc-linux-gnu-4.7.0?
hsmyers

0

আমার avr-gcc সংকলক নিয়েও আমার একই সমস্যা ছিল।

আমি / usr / অন্তর্ভুক্ত / i386-linux-gnu / এ থাকা ফাইল এবং ফোল্ডারগুলিকে একটি ফোল্ডারের সাথে সংযুক্ত করেছি যেখানে avr-gcc -files অনুসন্ধান করে। উদাহরণস্বরূপ: / usr / lib / avr / অন্তর্ভুক্ত /

ln -s /usr/include/i386-linux-gnu/* /usr/lib/avr/include/

হয়তো সিসির জন্য অনুরূপ কিছু কাজ করে। প্রতি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.