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)
--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.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 libcurl
sans --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:~$