在构建dbus示例时,我发现我们需要在gcc中添加pkg-config。例如:
gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
pkg-config --cflags --libs dbus-1
有什么意义?这是什么pkg-config?什么是额外的cflags?什么是--libs
?
答案 0 :(得分:16)
gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
将运行pkg-config
命令,并将其输出作为参数传递给gcc。
pkg-config
的目的是使对库的链接更容易,因为不同的操作系统和发行版需要不同的编译标志(也称为CFLAGS
),库包含路径和要链接的库。 pkg-config
使用配置文件(由库定义)为编译器生成上述信息,并且使我们不必担心编译所发生的操作系统或分发。
--cflags
表示pkg-config
应该为列出的包提供编译标志。
--libs
表示pkg-config
应该为列出的包提供链接信息。
和dbus-1
是包的名称。
答案 1 :(得分:2)
gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
包括以下部分:
pkg-config --cflags --libs dbus-1
注意``在中间执行命令。gcc
并返回输入文件<file_name>
输出目标文件。