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.