我指的是这个guide to pkg-config来学习如何写一个。
在某个地方,它提到了以下需要和 Requires.private 字段。
需要和 Requires.private 定义所需的其他模块 图书馆。通常优选使用私有变体 需要避免将不必要的库暴露给程序 正在链接你的图书馆。如果程序不会使用 所需库的符号,不应直接链接到 那个图书馆。
我理解其含义,但我并不完全理解这两种情况下链接过程会有何不同。 即给定这两个版本的* .pc,链接过程将如何工作?
bar1.pc:
prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: bar
Description: The bar library
Version: 2.1.2
Requires.private: foo >= 0.7
Cflags: -I${includedir}
Libs: -L${libdir} -lbar
bar2.pc:
prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: bar
Description: The bar library
Version: 2.1.2
Requires.private: foo >= 0.7
Cflags: -I${includedir}
Libs: -L${libdir} -lbar