Por que “pkg-config” imprime apenas um espaço em branco com a opção “--cflags”?

2

Eu instalei o libcurl usando: sudo apt-get install libcurl4-openssl-dev . Quando eu tento compilar meu programa eu li que temos que passar onde libcurl está localizado para o compilador GCC (embora para mim esteja localizado em / usr / include). Portanto, de acordo com o link , eu o compilei usando

gcc myfile.c $(pkg-config --libs --cflags libcurl) -o myprogram

Mas se eu inserir apenas pkg-config --cflags libcurl , nada será impresso (apenas um espaço em branco). O programa compila corretamente se eu adicionar o sinalizador e --libs . Eu só não entendo porque pkg-config --cflags libcurl não retorna nada

    
por Hello 22.07.2012 / 05:07

2 respostas

1
  • --cflags tem a intenção de fornecer a você qualquer sinalizador de pré-processador ou compilação necessário para os pacotes / bibliotecas na linha de comando; você obtém um espaço em branco porque não há tais flags obrigatórias para libcurl ; isso é perfeitamente normal.
por ish 22.07.2012 / 12:26
0

Qual é exatamente o comando que não imprime nada?

Você tem pkg-config --libs --cflags libcurl no comando $() no seu comando gcc , o que você diz que funciona. Mas você se referiu ao comando pkg-config que está executando para ver a saída como pkg-config --cflags libcurl sem --libs .

É possível que você esteja apenas executando um comando diferente dentro do $() no comando gcc como separadamente para verificar a saída?

Para esclarecer, enquanto a manpage é um pouco confusa, o comportamento real dos dois comandos é diferente . Isto é da minha máquina Ubuntu 11.10 amd64 com libcurl4-openssl-dev instalado:

ek@Apok:~$ pkg-config --libs --cflags libcurl
 -lcurl  
ek@Apok:~$ pkg-config --cflags libcurl

ek@Apok:~$
    
por Eliah Kagan 22.07.2012 / 05:50