gcc produz erroneamente “Nenhum tal arquivo ou diretório” sob o Cygwin

1

Para fins de demonstração, aqui está o meu programa de uma linha test.c:

#include <dbus/dbus.h>

Este é meu makefile:

INC     =   -I/usr/include/dbus-1.0         \
            -I/usr/lib/dbus-1.0/include

test    :   test.c
            gcc $(INC) -c -o test.o test.c

Eu tenho os pacotes dbus devel instalados no meu Mer Linux (via zypper) e no Cygwin (via programa de instalação). dbus / dbus.h são visíveis em ambos os sistemas (ls /usr/include/dbus-1.0 mostra a pasta dbus contendo o arquivo dbus.h entre muitos). Isto compila com sucesso no Mer Linux, mas quando compilado no Cygwin (2.831 64-Bit rodando no Win 7), recebo o seguinte erro:

test.c:1:23: fatal error: dbus/dbus.h: No such file or directory
 #include <dbus/dbus.h>
                       ^
compilation terminated.
makefile:5: recipe for target 'test' failed
make: *** [test] Error 1

Eu tentei cada variante simples que eu posso pensar para fazer o trabalho Cygwin - espaço entre -I e caminho, barra extra no final do caminho, ordens diferentes dos argumentos do gcc. Nada simples parece remediar este problema que não deveria existir.

Ajuda!

    
por Greg Young 22.05.2014 / 00:12

1 resposta

3

Um comentário de estouro de pilha discute a possibilidade disto ser devido a ter uma versão do gcc ou make que não está lidando com o conflito de estilo de caminho unix / Windows. Um problema semelhante ocorreu em outra outra situação, que foi resolvida garantindo que a versão do gcc do Cygwin fosse instalada, pois outra coisa.

Se você não tem o Cygwin gcc / make canônico instalado, isso pode ser a causa do problema.

    
por 22.05.2014 / 01:11

Tags