pkg-config在gcc中有什么意义?

dex*_*ous 16 c gcc pkg-config

在构建dbus示例时,我发现我们需要在gcc中添加pkg-config.例如:

gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
Run Code Online (Sandbox Code Playgroud)

有什么意义pkg-config --cflags --libs dbus-1?这是什么pkg-config?什么是额外的cflags?什么在--libs这里?

cyp*_*har 19

gcc `pkg-config --cflags --libs dbus-1` <file_name> -o <file_name.out>
Run Code Online (Sandbox Code Playgroud)

将运行该pkg-config命令,并将其输出作为参数传递给gcc.

目的pkg-config是使链接库更容易,因为不同的操作系统和发行版需要不同的编译标志(aka CFLAGS),库包含路径和链接到的库.pkg-config使用配置文件(由库定义)为编译器生成上述信息,并使我们不必担心编译发生在哪个操作系统或分发上.

--cflags表示pkg-config应该为列出的包提供编译标志. --libs表示pkg-config应该为列出的包提供链接信息.

并且dbus-1是包的名称.