gcc
कंपाइलर द्वारा खोज की गई फ़ाइलों में शामिल सटीक नियमों का पालन किया गया है : http://gcc.gnu.org/onbuildocs/cpp/Search-Path.html
एक त्वरित कमांड-लाइन ट्रिक यह पता लगाने के लिए कि एक सम्मिलित फ़ाइल कहाँ से आती है, निम्नलिखित है: 1
echo '#include <unistd.h>' | gcc -E -x c - > unistd.preprocessed
फिर, यदि आप unistd.preprocessed
फ़ाइल को देखते हैं, तो आप लाइनों को नोटिस करेंगे जैसे:
# 1 "/usr/include/unistd.h" <some numbers>
ये आपको बताते हैं कि निम्न खंड (अगली # number ...
पंक्ति तक ) फ़ाइल से आते हैं/usr/include/unistd.h
।
इसलिए, यदि आप शामिल फ़ाइलों की पूरी सूची जानना चाहते हैं, तो आप # number
लाइनों के लिए grep कर सकते हैं:
echo '#include <unistd.h>' | gcc -E -x c - | egrep '# [0-9]+ ' | awk '{print $3;}' | sort -u*emphasized text*
मेरे Ubuntu 10.04 / gcc 4.4.3 सिस्टम पर, यह उत्पादन करता है:
$ echo '#include <unistd.h>' | gcc -E -x c - | egrep '# [0-9]+ ' | awk '{print $3;}' | sort -u
"<built-in>"
"<command-line>"
"<stdin>"
"/usr/include/bits/confname.h"
"/usr/include/bits/posix_opt.h"
"/usr/include/bits/predefs.h"
"/usr/include/bits/types.h"
"/usr/include/bits/typesizes.h"
"/usr/include/bits/wordsize.h"
"/usr/include/features.h"
"/usr/include/getopt.h"
"/usr/include/gnu/stubs-64.h"
"/usr/include/gnu/stubs.h"
"/usr/include/sys/cdefs.h"
"/usr/include/unistd.h"
"/usr/lib/gcc/x86_64-linux-gnu/4.4.3/include/stddef.h"
1 नोट: शामिल फ़ाइलों के लिए खोज पथ को -I
कमांड-लाइन विकल्प द्वारा संशोधित किया गया है; इसलिए, आपको आह्वान में कोई -I path
तर्क जोड़ना चाहिए gcc
। इसके अलावा, यदि आप C ++ स्रोत संकलित कर रहे हैं, तो आपको इसके -x c
साथ स्थानापन्न होना चाहिए -x c++
।
unistd.h
सी हेडर फ़ाइल है; यह जावा के साथ क्या करने के लिए मिल गया है?