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.

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

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 .


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.