Aturan pasti yang diikuti oleh gcc
kompiler untuk menemukan file termasuk dijelaskan di: http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html
Trik baris perintah cepat untuk mencari tahu dari mana file include berasal adalah sebagai berikut: 1
echo '#include <unistd.h>' | gcc -E -x c - > unistd.preprocessed
Kemudian, jika Anda melihat unistd.preprocessed
file, Anda akan melihat baris seperti:
# 1 "/usr/include/unistd.h" <some numbers>
Ini memberi tahu Anda bahwa blok baris berikut (sampai # number ...
baris berikutnya ) berasal dari file /usr/include/unistd.h
.
Jadi, jika Anda ingin mengetahui daftar lengkap file yang disertakan, Anda dapat menerima # number
baris:
echo '#include <unistd.h>' | gcc -E -x c - | egrep '# [0-9]+ ' | awk '{print $3;}' | sort -u*emphasized text*
Pada sistem Ubuntu 10.04 / gcc 4.4.3 saya, ini menghasilkan:
$ 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 Catatan: Jalur pencarian untuk menyertakan file dimodifikasi oleh -I
opsi baris perintah; jadi, Anda harus menambahkan -I path
argumen apa pun pada gcc
doa. Juga, jika Anda mengkompilasi sumber C ++, Anda harus menggantinya -x c
dengan -x c++
.
unistd.h
apakah file header C; apa hubungannya dengan Java?