我使用以下方式安装了 libcurl:。sudo apt-get install libcurl4-openssl-dev
当我尝试编译我的程序时,我读到我们必须将 libcurl 的位置传递给 GCC 编译器(尽管对我来说它位于 /usr/include)。因此根据http://ubuntuforums.org/showthread.php?t=1175115我使用
gcc myfile.c $(pkg-config --libs --cflags libcurl) -o myprogram
但如果我只输入,pkg-config --cflags libcurl
它什么也不会打印出来(只有一个空格)。如果我添加标志和,程序就会正确编译。--libs
我只是不明白为什么pkg-config --cflags libcurl
什么都不返回)
答案1
--cflags
旨在为您提供任何预处理器或编译标志必需的对于命令行上的包/库;你得到一个空白,因为没有这样的必需标志库;这很正常。
答案2
不打印任何内容的命令到底是什么?
您在命令中提到了,pkg-config --libs --cflags libcurl
您说这有效。但是您引用了正在运行的命令来查看输出$()
gcc
pkg-config
pkg-config --cflags libcurl
没有--libs
。
$()
您是否可能只是在命令中运行不同的命令,gcc
就像单独检查输出一样?
需要澄清的是,虽然手册页有点令人困惑,但这两个命令的实际行为是不同的。这是在我的 Ubuntu 11.10 amd64 机器上libcurl4-openssl-dev
安装的:
ek@Apok:~$ pkg-config --libs --cflags libcurl
-lcurl
ek@Apok:~$ pkg-config --cflags libcurl
ek@Apok:~$