【发布时间】:2017-08-01 14:56:34
【问题描述】:
我指的是guide to pkg-config 学习如何写一个。
在某处,它提到了以下关于 Requires 和 Requires.private 字段的内容。
Requires 和 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: foo >= 0.7
Cflags: -I${includedir}
Libs: -L${libdir} -lbar
【问题讨论】:
标签: shared-libraries pkg-config