Di mana file header untuk GCC berada?

10

Saya ingin secara manual menambahkan beberapa file header suka math.hdan graphic.huntuk gcctetapi tidak tahu di mana harus meletakkannya.

Chirag Soni
sumber

Jawaban:

13

Pertama lihat di /usr/includeatau /usr/local/include.

Jika Anda tidak menemukan apa pun di sana, cobalah:

`gcc -print-prog-name=cc1plus` -v

Perintah ini menanyakan gcc preprocessor C ++ mana yang digunakannya, dan kemudian menanyakan preprocessor itu ke mana ia termasuk.

Anda akan mendapatkan jawaban yang andal untuk pengaturan spesifik Anda.

Demikian juga untuk preprosesor C:

`gcc -print-prog-name=cc1` -v
Sachin Kamath
sumber
6

Jika Anda hanya ingin tahu di mana file itu ditempatkan, cukup gunakan perintah loc :

locate -b '\math.h'
locate -b '\graphics.h'

Mungkin Anda memiliki tambahan untuk memperbarui basis data Anda sebelumnya:

sudo updatedb

Itulah cara saya mencari lokasi header saya. Ini jauh lebih cepat daripada menggunakan perintah find .

abu_bua
sumber
math.hharus sudah ada. Contoh:/usr/include/c++/7.3.0/math.h
Knud Larsen
Normaly Anda cukup memasukkan lib dengan nama gcc.c -o name -lm
abu_bua
Bagaimana backslash bertindak untuk mencegah pencocokan dengan file dengan karakter sebelumnya di nama dasarnya? String \math.hharus dievaluasi math.h, tetapi saya melihat bahwa \math.hmenghindari file yang cocok seperti tgmath.hdan quadmath.h.
user001
1
DARI 'lokasi pria': Untuk mencari file yang bernama persis NAME (bukan * NAMA *), gunakan temukan -b '\ NAME' Karena \ adalah karakter globbing, ini menonaktifkan penggantian implisit NAMA oleh * NAME *.
abu_bua
Terima kasih. Saya telah memeriksa man locate, tetapi saya rasa saya memiliki versi yang berbeda dari locate(1)halaman manual (yang tidak memiliki satu contoh pun \ ).
user001