2014-07-08 20 views
0

有沒有一種乾淨的方式來區分debian包括RH/fedora/centos之一的路徑?#ifdef查找如果使用debian或fedora/RH/centos

我想鏈接到wbxml2庫,但不幸的是,包含文件si根據發行版不在相同的位置。

在Debian/Ubuntu的:

#include <wbxml.h> 

和別人:

#include <wbxml2/wbxml.h> 

沒有任何人有一個乾淨的解決方案,以使此代碼移植(使用的#ifdef例如)? 感謝

+0

用'Makefile' /'cmake'而不是預處理器'#if'管理包含目錄? –

+1

實際上,在Makefile中添加-I/usr/include/wbxml2可解決此問題。 – user3710871

回答

3

望着list of provided files for the -dev package節目,當中當然其他的事情:

/usr/lib/pkgconfig/libwbxml2.pc

這行是開發包 「包配置」 文件。這意味着你不需要關心絕對位置:改爲使用包配置工具。

添加到您的Makefile:

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

,你會得到關於使用pkg-config所有系統的正確路徑。

這是處理這個問題的正確,正確和預期的方式,並且原因pkg-config首先存在。