为什么“pkg-config”使用“--cflags”选项时仅打印空白?

为什么“pkg-config”使用“--cflags”选项时仅打印空白?

我使用以下方式安装了 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您说这有效。但是您引用了正在运行的命令来查看输出$()gccpkg-configpkg-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:~$

相关内容