1

我正在尝试在 C++ 中创建我的 autotools 项目与库的链接,该库起源于 C 库 (libsomelib.so),但也绑定到 c++ (libsomelib++.so)。我正在尝试使用 PKG_CHECK_MODULES 检查是否已安装此软件包,并使用自动工具链接它。然而,这两个库都在一个包中(c++ 版本需要配置标志),并且只有一个 .pc 文件,其中独立于配置设置只有一行

Libs: -L${libdir} -lsomelib

没有提及++版本。我在其他程序中也没有注意到单独的 ++.pc 文件。因此自动链接 ++ 版本是不可能的。我考虑过手动将 -lsomelib++ 添加到链接标志,但这相当难看(如果有人在没有 --with-cxx 标志的情况下编译它,它将无法工作)。我也可以通过 AC_SEARCH_LIBS 测试它的存在,但由于它是 C++ 库,所以它不是那么简单。

是缺少软件包分发器的 ++.pc 文件错误还是有一些更深层次的想法,我不知道如何使用它?

如果有人真的很奇怪,我会说有问题的包是 ossp-uuid。

4

1 回答 1

1

是的,缺少的 ++.pc 通常代表包装商暗示遗漏。

顺便说一句:如果简单的 (DCE) UUID 就足够了,您可以考虑 e2fsprogs/util-linux 的 libuuid(以防您运行此操作系统)。

于 2010-12-06T00:57:21.610 回答