আমার / usr / অন্তর্ভুক্ত / sys ডিরেক্টরি কোথায়?


13

আমি সম্প্রতি কুবুন্টু থেকে 12.04 থেকে 13.04 এ আপগ্রেড করেছি, একটি সম্পূর্ণ পুনরায় ইনস্টল।

জিসিসি ব্যবহার করে 4.7.3। কোনও /usr/include/sysডিরেক্টরি নেই তা আবিষ্কার করতে আমি কয়েকটি প্রোগ্রাম সংকলিত করেছি । অর্থাৎ types.h, stat.hইত্যাদি অনুপস্থিত হয়। এগুলি include/linuxডিরেক্টরিতে বিদ্যমান কিন্তু নেই include/sys

কি হচ্ছে?


জিসিসি যে ত্রুটি বার্তা প্রিন্ট করে তা কী? আপনার সমস্যা সম্পর্কিত এটি এবং অন্যান্য তথ্য সরবরাহ করতে দয়া করে প্রশ্নটি সম্পাদনা করুন।
এডউইন

1
আপনি কি প্রয়োজনীয় স্থাপন করেছেন?
শেঠ

আমি বেশ কয়েকটি প্রোগ্রাম সূক্ষ্ম সংকলন করার চেষ্টা করেছি যাতে গিসি থেকে কোনও ত্রুটি বার্তা আসে না। শিরোনামটি কোথা থেকে এসেছে তা আমি ঠিক বুঝতে পারি না। আমার একটি সম্পাদক আছে যা ফাংশন এবং সিস্কেল এবং এর মতো উল্লেখগুলি তৈরি করে এবং এটি ডিরেক্টরিটি খুঁজে পাচ্ছে না বলে খুশি হয় না।
হাঁস 16

1
হ্যাঁ, বিল্ড-অত্যাবশ্যক আপ টু ডেট।
হাঁস

উত্তর:


13

আপনি যদি 64-বিটে উবুন্টু ব্যবহার করেন (আমি এখন 32-বিট সিস্টেমে ঠিক টেক্সট করতে পারি না), তবে প্রশ্নটি থেকে ডিরেক্টরিটি হ'ল:

/usr/include/x86_64-linux-gnu/sys

এখন, এই তথ্য থাকার পরে, আপনি যদি সেই জায়গাগুলিতে সত্যই তাদের প্রয়োজন হয় ( /usr/include/sys) এটি টার্মিনালে ব্যবহার করে:

sudo ln -s /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/sys/types.h
sudo ln -s /usr/include/x86_64-linux-gnu/sys/stat.h /usr/include/sys/stat.h

# ...etc

হ্যাঁ, 64 বিট। আমি অন্য কোথাও তেমন কিছু পড়েছি এবং দেখে মনে হয় যে সমস্ত কিছু সেই ডিরেক্টরিতে রয়েছে তবে আমি নিশ্চিত নই যে শিরোনামগুলি কীভাবে "# অন্তর্ভুক্ত সিস / স্টাট। Ht" থেকে x86_64 / sys ডিরেক্টরিতে অন্তর্ভুক্ত হচ্ছে। এটি কি কিছু নতুন ফ্যাংলড জিসিসি ইনজেকশন বৈশিষ্ট্য? অফ হ্যান্ড আমি কোনও প্রতিলিঙ্ক বা এর মতো দেখতে পাই না (বাহ্যিকভাবে) এই আচরণের দিকে পরিচালিত করবে।
হাঁস

দেখে মনে হচ্ছে আমরা বাতাসে একে অপরকে পেরিয়েছি। সুতরাং নীচের লাইনটি হ'ল কম্পাইলারটি কিছু যাদু করছে তবে আমার সম্পাদককে খুশি করার জন্য আমার কিছু সিএমলিংক হ্যাক ব্যবহারের প্রয়োজন হতে পারে?
হাঁস

@ ডাক আমি আপনার মন্তব্যের 2 মিনিটের আগেই আমার উত্তরটি সম্পাদনা করেছি :)
রাদু রাদিয়ানু

5

আপনি যদি একটি 64-বিট লিনাক্সে কাজ করেন তবে libc6-dev-amd64 ইনস্টল করুন। উবুন্টু টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন:

sudo apt-get install libc6-dev-amd64

1

sys ডিরেক্টরিটি একটি ইউনিক্স / লিনাক্স সিস্টেম শিরোনাম ডিরেক্টরি যা প্রচুর সিস্টেম কমান্ডের সাথে থাকে। বিভিন্ন ব্র্যান্ড / সংস্করণ লিনাক্স এটি বিভিন্ন জায়গায় রাখতে পারে। নিম্নলিখিত কমান্ড আপনাকে সাহায্য করতে পারে:

find /usr/include -type d -name sys
On my ubuntu 16 got the two
/usr/include/bsd/sys
/usr/include/x86_64-linux-gnu/sys

প্রথমটি হ'ল বিএসডি ইউনিক্স সিস্টেমের শিরোনাম।
দ্বিতীয়টি হ'ল একটি ডিরেক্টরি যা লিনাক্স 64৪ বিট সিস্টেমের হেডযুক্ত।

সিএমকে / সিস্টেস্ট এইচডি ফাইলটি সন্ধান করতে না পেরে আমি সমস্যার মধ্যে পড়েছি। আমার অস্থায়ী সমাধানটি প্রতীকী লিঙ্ক তৈরি করা

/user/local/include/sys/stat.h from /usr/include/x86_64-linux-gnu/sys/stat.h

আমি / usr / অন্তর্ভুক্ত ডিরেক্টরিটি কলুষিত করতে চাই না এবং আমি কেবলমাত্র একটি নির্দিষ্ট হেডার ফাইলটিতে লিঙ্ক তৈরি করছি, পুরো সিস্টেম ডিরেক্টরিকে নয়। আমি মনে করি এটি চ্যামেকের একটি ত্রুটি, সুতরাং কেবলমাত্র একটি লিঙ্ক তৈরি করে ন্যূনতম প্রভাব ফেলছে। আশা করি এটি তাদের যারা একই সমস্যায় ভুগছেন তাদের সহায়তা করতে পারে।


1

আসুন পরীক্ষা করুন যে জিসিসির ডিফল্টটিতে অনুসন্ধানের পথটি অন্তর্ভুক্ত রয়েছে। এই উত্তর থেকে , আমরা এই আদেশটি পেয়েছি:

gcc -xc -E -v -

আউটপুট শেষে, আমি আমার মেশিনে এটি দেখতে পাচ্ছি:

ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include

দ্বিতীয় থেকে শেষ লাইনটি লক্ষ্য করুন। এর অর্থ হ'ল আপনি যখন কোনও সি ফাইলটি সংকলন করবেন তখন আমাদের কিছু সিমিলিং না করে জিসিসি চেষ্টা করার আগে #include <sys/stat.h>সন্ধান করবে ।/usr/include/x86_64-linux-gnu/sys/stat.h/usr/include/sys/stat.h


0

যেহেতু আমার আর্কিটেকচারটি amd64 তাই নেই libc6-dev-amd64। প্যাকেজ ইনস্টল করার জন্য libc6-dev-i386

এটি সিপিএএন-প্যাকেজের জন্য নির্ভরতা স্থির করে।


'আমার আর্কিটেকচারটি amd64 হওয়ায় কোনও libc6-dev-amd64 নেই' : আপনার অর্থ কী?
মার্ক ভ্যানহোমিসসেন 22'18

আমার অর্থটি হ'ল x86_64 আর্কিটেকচার, লাইব্রেরি / কার্নেল / ইত্যাদিতে। প্যাকেজগুলির amd64 আর্কিটেকচার রয়েছে। সুতরাং, libc6-dev-amd64 ইনস্টল করার জন্য উপলভ্য নয়। তবুও সমস্যাটি এখনও থেকেই যায়, কিছু সফ্টওয়্যার আশা করে / ইউএসআর / অন্তর্ভুক্ত / এসআইএস / দেখে to
জারি তুর্কিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.