web-dev-qa-db-fra.com

Pourquoi "pkg-config" n'imprime-t-il qu'un espace vide avec l'option "--cflags"?

J'ai installé libcurl en utilisant: Sudo apt-get install libcurl4-openssl-dev. Quand j'essaye de compiler mon programme, j'ai lu que nous devons passer où se trouve libcurl au compilateur GCC (bien que pour moi, il soit situé dans/usr/include). Par conséquent, selon http://ubuntuforums.org/showthread.php?t=1175115 Je l'ai compilé en utilisant

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

Mais si j'entre seulement pkg-config --cflags libcurl il n'imprime rien (seulement un espace vide). Le programme se compile correctement si j'ajoute le drapeau et --libs. Je ne comprends pas pourquoi pkg-config --cflags libcurl ne renvoie rien)

2
Hello
  • --cflags est destiné à vous donner des indicateurs de pré-processeur ou de compilation requis pour les packages/bibliothèques sur la ligne de commande; vous obtenez un espace vide car il n'y a pas de tels drapeaux requis pour libcurl; c'est parfaitement normal.
1
ish

Quelle est exactement la commande qui n'imprime rien?

Vous avez pkg-config --libs --cflags libcurl Dans la commande $() dans votre commande gcc, qui, selon vous, fonctionne. Mais vous avez fait référence à la commande pkg-config Que vous exécutez pour voir la sortie comme pkg-config --cflags libcurlsans --libs.

Est-il possible que vous exécutiez simplement une commande différente à l'intérieur de la fonction $() dans la commande gcc car vous êtes séparément pour vérifier la sortie?

Pour clarifier, bien que la page de manuel soit un peu déroutante, le comportement réel des deux commandes est différent. Ceci provient de ma machine Ubuntu 11.10 AMD64 avec libcurl4-openssl-dev Installé:

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

ek@Apok:~$
0
Eliah Kagan