Onde estão localizados os arquivos de cabeçalho do GCC?

10

Quero adicionar manualmente alguns arquivos de cabeçalho como math.he graphic.hpara, gccmas não sei onde colocá-los.

Chirag Soni
fonte

Respostas:

13

Primeiro, dê uma olhada em /usr/includeou /usr/local/include.

Se você não encontrar nada, tente:

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

Este comando pergunta ao gcc qual pré-processador C ++ está usando e, em seguida, pergunta ao pré-processador onde ele procura inclui.

Você receberá uma resposta confiável para sua configuração específica.

Da mesma forma, para o pré-processador C:

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

Se você deseja apenas saber onde o arquivo está localizado, basta usar o comando localizar :

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

Talvez você tenha mais para atualizar seu banco de dados antes:

sudo updatedb

É assim que procuro a localização dos meus cabeçalhos. É muito mais rápido do que usar o comando find .

abu_bua
fonte
math.hjá deve estar presente. Exemplo:/usr/include/c++/7.3.0/math.h
Knud Larsen
Normaly você simplesmente incluir o lib com o gcc nome.c -o nome -lm
abu_bua
Como a barra invertida age para impedir a correspondência de arquivos com caracteres anteriores em seus nomes de base? A string \math.hdeve ser avaliada como math.h, mas vejo que \math.hevita arquivos correspondentes como tgmath.he quadmath.h.
User001
11
FROM 'man localizar': Para procurar um arquivo chamado exatamente NAME (não * NAME *), use o comando -b '\ NAME'. Como \ é um caractere brilhante, isso desativa a substituição implícita de NAME por * NAME *.
abu_bua
Obrigado. Eu havia verificado man locate, mas acho que tenho uma versão diferente da locate(1)página do manual (que não possui uma instância \ ).
User001