C语言 #ifdef查看使用的是debian还是fedora/RH/centos



是否有一种干净的方法来区分debian包含路径和RH/fedora/centos路径?

我想与wbxml2库链接,但不幸的是,包含文件不在同一位置,具体取决于发行版。

在debian/ubuntu:

    #include <wbxml.h>

和其他:

    #include <wbxml2/wbxml.h>

有没有人有一个干净的解决方案,使这段代码可移植(使用#ifdef为例)?由于

查看为-dev包提供的文件列表,其中当然包括:

/usr/lib/pkgconfig/libwbxml2.pc

那一行是开发包的"包配置"文件。这意味着你不需要关心绝对位置:使用包配置工具代替。

添加到你的Makefile:

CFLAGS += $(pkg-config --cflags libwbxml2)
LDLIBS += $(pkg-config --libs libwbxml2)

您将在使用pkg-config的所有系统上获得正确的路径。

这是处理这一问题的恰当、正确和预期的方式,也是pkg-config存在的首要原因。

相关内容

最新更新