কনফিগার: ত্রুটি: সি সংকলক এক্সিকিউটেবলগুলি তৈরি করতে পারে না


15

আমি আরভিএম ব্যবহার করে ইনস্টল করার চেষ্টা করছিলাম \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles। আমি কনফিগার ত্রুটি না পাওয়া পর্যন্ত এটি দুর্দান্ত কাজ করেছে:

Error running './configure --prefix=/home/nishant/.rvm/rubies/ruby-2.0.0-p247 --disable-install-doc --enable-shared',
please read /home/nishant/.rvm/log/1379591052_ruby-2.0.0-p247/configure.log
There has been an error while running configure. Halting the installation.

নীচে উল্লিখিত লগ ফাইলের বিষয়বস্তু রয়েছে:

[2013-09-19 17:15:58] ./configure
current path: /home/nishant/.rvm/src/ruby-2.0.0-p247
command(4): ./configure --prefix=/home/nishant/.rvm/rubies/ruby-2.0.0-p247 --disable-install-doc --enable-shared
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/nishant/.rvm/src/ruby-2.0.0-p247':
configure: error: C compiler cannot create executables
See `config.log' for more details

আমি তখন একটি "হ্যালো ওয়ার্ল্ড" সি প্রোগ্রাম চেষ্টা করেছিলাম এবং সংকলনের ক্ষেত্রে নিম্নলিখিত ত্রুটি পেয়েছি:

nishant@nishant-Inspiron-1545:~$ gcc -g -o hello hello.c 
/usr/local/bin/ld: this linker was not configured to use sysroots
collect2: error: ld returned 1 exit status

আমি নিশ্চিত নই কেন এই ত্রুটিটি ছুড়ে দেওয়া হয়েছে। ফোরামটিতে আমি এর সন্তোষজনক উত্তর খুঁজে পাইনি। কেউ দয়া করে সাহায্য করতে পারেন। ধন্যবাদ


1
'./Configure' স্ক্রিপ্টটি চালানোর সময় আমি সিপিপিএফএলএফএলজিএসের জন্য ভুল করে CXXFLAGS নির্দিষ্ট করেছিলাম তখন আমি এই ত্রুটিটি পেয়েছি। সুতরাং ত্রুটি বার্তাটি সঠিক ত্রুটির ব্যাখ্যা দেয় না।
রাজারভির্মা

উত্তর:


12

দেখে মনে হচ্ছে ldআপনার নিজের /usr/local/binডিরেক্টরিতে GNU লিঙ্কারের একটি অ-মানক সংস্করণ রয়েছে (সম্ভবত উত্স থেকে ইনস্টল করা) এবং আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলটি সেট করা আছে যে সিস্টেমটি 'সিস্টেম' সংস্করণের আগে সংস্করণটি খুঁজে পায় (যা হওয়া উচিত /usr/bin/ld) । আপনি যদি বিল্ড সরঞ্জামগুলির স্ট্যান্ডার্ড সিস্টেম সংস্করণগুলি ব্যবহার করে বিল্ডিং করতে চান তবে আপনার PATH পরিবেশের পরিবর্তনশীলটি সামঞ্জস্য করতে হবে যাতে এটি /usr/binসামনে অনুসন্ধান করে/usr/local/bin

আপনি যদি নিজের PATH ভেরিয়েবল স্থায়ীভাবে ঠিক করতে চান তবে আপনাকে এটি কোথায় মূল হিসাবে সেট করেছেন তা খুঁজে বের করতে হবে - সম্ভবত আপনার ~ / .bashrc ফাইলে, তবে অন্যান্য অবস্থানগুলিও সম্ভব। বিকল্পভাবে, আপনার যদি এই বিল্ডটির জন্য কেবল অস্থায়ী সমাধানের প্রয়োজন হয় তবে আপনি চেষ্টা করতে পারেন

export PATH="/usr/bin:$PATH"

কার্যকর করার আগে টার্মিনালে ./configure

তবে মাঝে মাঝে আপনার (বা আপনার সিস্টেম অ্যাডমিন) আপনি যে /usr/localকোনও সরঞ্জামের সংস্করণ ব্যবহার করতে চাইতে পারেন এমন ভাল কারণ রয়েছে - যদি তা হয় তবে আপনাকে ldসেখানে নির্ধারিত চেইনের বাকি অংশগুলির সাথে আপাতভাবে সামঞ্জস্যপূর্ণ না হওয়ার কারণ খুঁজে বের করতে হবে fix এটি - যদি এটি কোনও কাজ বা স্কুল সিস্টেম হয় তবে আপনার সিস্টেম প্রশাসক বা তথ্য বিভাগের সাথে যোগাযোগ করুন।


9
সাধারণত /usr/local/binএগিয়ে রয়েছে /usr/binPATHভাল কারণ জন্য: একটি প্রোগ্রাম স্থানীয়ভাবে ইনস্টল বন্টন থেকে সংস্করণটি অগ্রাধিকার লাগে যদি তার মধ্যে কোন বিন্দু আছে। সমস্যাটি দেখাতে ভাল কাজ, তবে প্রস্তাবিত রেজোলিউশনটি প্যাথএইচ পরিবর্তন করার জন্য নয় বরং হয় সেই ভাঙ্গাটিকে সরাতে বা ঠিক করতে /usr/local/bin/ld
গিলস 'অশুভ হওয়া বন্ধ করুন'

@ স্টিলড্রাইভার: এটি যদি সেখানে না থাকে b / .আরএসআরসি তে আমি কেবল "এক্সপোর্ট PATH =" / usr / বিন: $ पथ "" লাইনটি কপি-পেস্ট করতে পারি। অথবা এটি অন্যান্য প্রোগ্রামগুলির জন্য কোনও সমস্যা তৈরি করবে?
নাকা

@ গিলস আমি আপনার মন্তব্যের প্রতিফলনের জন্য আমার উত্তরটি সম্পাদনা করেছি @ নাকা আমি তার বিপরীতে পরামর্শ দিচ্ছি, এটি দীর্ঘমেয়াদে আরও বিভ্রান্তি সৃষ্টি করবে - আপনার গিলসের মন্তব্যটি নোট করা উচিত এবং আপনার প্রশাসক কেন এই প্যাটটিকে ব্যবহার করতে প্যাট সেট আপ করেছেন তা সন্ধান করা উচিত সংস্করণ/usr/local
স্টিল্ড্রাইভার

3
আমি একই ত্রুটি পেয়েছি ... এটি আমার পক্ষে কাজ করে না ... which ldকেবল ফেরত দেয় /usr/bin/ld...
isomorphismes

9

উপরে বর্ণিত জটিল কারণগুলির বিপরীতে, আমার ক্ষেত্রে এটি কেবল g++ইনস্টল না করার ঘটনা ছিল । অদ্ভুতভাবে, ত্রুটি বার্তাটি ওপি দ্বারা বর্ণিত একই ছিল ie

configure: error: C compiler cannot create executables

যাইহোক, আমি g ++ ইনস্টল করে এটি সমাধান করেছি:

sudo apt-get install g++

0

সিস্টেম আপডেট করার চেষ্টা করুন, এলডি এবং সংকলক ( জিসিসি ) সরবরাহকারী প্যাকেজগুলি পুনরায় ইনস্টল করুন । চালান prelink -au && depmod -a। তারপরে পুনরায় বুট করুন।

আপনার ড্রেসগুলি এটি /etc/systemctlসেট আপ করতে বা যেখানেই প্রিলিংকটি অক্ষম করতে বা পুনরায় কনফিগার করতে হবে।

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