O compilador não pode encontrar o arquivo de cabeçalho, eu adiciono o diretório ao PATH?

5

Estou tentando trabalhar com o gtk, que está localizado em /usr/include/gtk-3.0/gtk/ .. , mas todos os arquivos de cabeçalho no kit de ferramentas têm #include <gtk/gtk.h> .

Além de adicionar /usr/local/gtk-3.0 a PATH ou adicionar gtk-3.0 a todos os pré-processadores de inclusão, que outras opções você tem com isso?

    
por sherrellbc 16.12.2014 / 21:35

2 respostas

6

Adicionar o diretório apropriado ao seu caminho de inclusão é exatamente o que você deve fazer neste caso, somente você deve fazer isso em pkg-config . Acessar os arquivos diretamente usando nomes completos de caminho não é suportado.

Adicione algo assim ao seu Makefile :

CFLAGS += 'pkg-config --cflags gtk+-3.0'
LIBS += 'pkg-config --libs gtk+-3.0'

Isso adicionará automaticamente as opções corretas de compilador e vinculador para o sistema atual.

    
por 16.12.2014 / 21:43
3

A variável de ambiente PATH é o caminho de pesquisa para executáveis, não para outros tipos de arquivos. Para incluir arquivos, você precisa organizar a opção -I/usr/include/gtk-3.0/gtk para o compilador. Normalmente, você faz isso definindo uma variável definida por um makefile (geralmente CFLAGS='-I/usr/include/gtk-3.0/gtk' ) ou passando um argumento para ./configure (normalmente ./configure --includedir=/usr/include/gtk-3.0/gtk ).

Com o Gtk e outros softwares seguindo as práticas do Freedesktop, a maneira correta de indicar a localização dos arquivos de inclusão, bem como outras opções de compilador e linker, é com pkg-config , como descrito na resposta da Celada .

    
por 16.12.2014 / 23:53