জিসিসি ডিফল্ট ডিরেক্টরিগুলি অন্তর্ভুক্ত কি?


131

আমি যখন সিসিটি দিয়ে খুব সাধারণ উত্স ফাইলটি সংকলন করি তখন আমাকে স্ট্যান্ডিও বা স্টডিলিবের মতো ফাইলগুলি স্ট্যান্ডার্ডের জন্য নির্দিষ্ট করতে হবে না।

এই ফাইলগুলি কীভাবে খুঁজে পেতে জিসিসি জানে?

এটির /usr/includeভিতরে কী শক্তিশালী পথ রয়েছে, বা এটি অন্য ওএস উপাদানগুলির থেকে পাথ পাবে?

উত্তর:


188

gcc/ দ্বারা ব্যবহৃত ডিফল্ট পাথগুলি g++এবং তাদের অগ্রাধিকারগুলি সনাক্ত করার জন্য আপনাকে নিম্নলিখিত কমান্ডগুলির আউটপুট পরীক্ষা করতে হবে:

  1. জন্য সি :
    gcc -xc -E -v -
  1. জন্য সি ++ :
    gcc -xc++ -E -v -

ক্রেডিট কিউটি ক্রিয়েটার টিমের কাছে যায় ।


5
cpp -v /dev/null -o /dev/null
নেহাল জে ওনি

36

সংক্ষিপ্ত আউটপুট সহ একটি কমান্ড রয়েছে, যা একক স্পেস দিয়ে শুরু করে লাইন থেকে অন্তর্ভুক্ত প্যাটিগুলি স্বয়ংক্রিয়ভাবে কাটতে দেয়:

$ echo | gcc -Wp,-v -x c++ - -fsyntax-only
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2
 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/x86_64-redhat-linux
 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../include/c++/4.8.2/backward
 /usr/lib/gcc/x86_64-redhat-linux/4.8.2/include
 /usr/local/include
 /usr/include
End of search list.

ক্রেডিটটি libc ++ সামনের পৃষ্ঠায় যায়


1

যদিও আমি সি ++ বিবেচনা করার জন্য ইহোর কাহারলচেঙ্কোর জবাব এবং এর আউটপুটটির সংক্ষিপ্ততার জন্য অতল গহ্বর 7 এর উত্তরের সাথে একমত, যদিও তারা এখনও সিসিটির বহু-খিলান সংস্করণগুলির জন্য অসম্পূর্ণ কারণ ইনপুট প্রসেসিং কমান্ড লাইন প্যারামিটার এবং ম্যাক্রোগুলির উপর নির্ভর করে।

উদাহরণ:

echo | /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ -specs=nano.specs -mcpu=cortex-m4 -march=armv7e-m -mthumb -mfloat-abi=soft -x c++ -E -Wp,-v\ - -fsyntax-only উৎপাদনের


/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../arm-none-eabi/include/newlib-nano                                                                                                              
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1                                                                        
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/arm-none-eabi/thumb/v7e-m/nofp                                         
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/backward                                                               
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include                                                                                                            
 /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed                                                                                                      
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include                                                                                  

echo | /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++ -x c++ -E -Wp,-v - -fsyntax-onlyফলন যেখানে


/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1                                                                        
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/arm-none-eabi                                                          
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include/c++/9.2.1/backward                                                               
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include                                                                                                            
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/include-fixed                                                                                                      
/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/include                                                                                  

প্রাক্তন প্রার্থনাটি কাজে লাগায় newlib(আউটপুটটির 1 এবং 3 লাইন দেখুন), পরবর্তীটি মান সহ অন্তর্ভুক্ত থাকে। তালিকার শেষে থাকা সাধারণ ফাইলগুলি ব্যবহারের উদাহরণ include_next

নীচের লাইন: অন্তর্ভুক্ত ডিরেক্টরিগুলি মুদ্রণের সময় সর্বদা সমস্ত ম্যাক্রোগুলি এবং সংকলক বিকল্প বিবেচনা করুন


1

ডিফল্ট অনুসন্ধানের পথগুলির তালিকা করতে কেবল নিম্নলিখিতটি চালান:

$(gcc -print-prog-name=cc1) -v

এটি অন্তর্ভুক্ত পাথের তালিকা করে না। কেবল প্রোগ্রামের পাথ এবং লাইব্রেরিগুলির পথ
কায়াহর

cc1সাধারণত সরাসরি বলা যায় না কারণ এটি একটি অভ্যন্তরীণ কমান্ড যা PATH তে নেই। ফাইলটি কোথায় পাওয়া যাবে তা বর্ণনা করতে আপনি নিজের উত্তরটি সম্পাদনা করতে চান want
কায়াহর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.