2012-07-04 99 views
1

是否可以在pkg-config文件(mylib.pc.in)中指定C和C++的包含路徑?pkg-config:包含C和C++的路徑

我知道我有Cflags場在那裏我可以通過任何編譯標誌,但它是通用的,autoconf通過把我的所有選項,只要在X_CFLAGS包含路徑,但不X_CXXFLAGS解決它。

所以,如果我有一個包含C和C++文件的項目,並在Makefile.am註明:

mybin_CPPFLAGS = $(X_CPPFLAGS) 
mybin_CFLAGS  = $(X_CFLAGS) 
mybin_CXXFLAGS = $(X_CXXFLAGS) 

我的C++文件不能看到包括路徑! 在下面的示例中,mylib.pc.in包含Cflags: -I/my/iclude/path/

輸出編譯C文件:

libtool: compile: ppc-linux-gcc -DHAVE_CONFIG_H -I. -I./include -I/opt/ELDK/ppc_8xx/usr/include/ -I/my/iclude/path/ -Wall -std=gnu99 -MT libAW3C_IDU_la-aw3c_utility.lo -MD -MP -MF .deps/libAW3C_IDU_la-aw3c_utility.Tpo -c src/aw3c_utility.c -fPIC -DPIC -o .libs/libAW3C_IDU_la-aw3c_utility.o 

輸出編譯的C++文件(注意丟失-I/my/iclude/path/):

libtool: compile: ppc-linux-g++ -DHAVE_CONFIG_H -I. -I./include -I/opt/ELDK/ppc_8xx/usr/include/ -Wall -MT libAW3C_IDU_la-aw3c_stream.lo -MD -MP -MF .deps/libAW3C_IDU_la-aw3c_stream.Tpo -c src/aw3c_stream.cpp -fPIC -DPIC -o .libs/libAW3C_IDU_la-aw3c_stream.o 

任何幫助將不勝感激。 謝謝!

回答

3

pkg-config有選項--cflags-only-I,它只產生Cflags中的包含路徑。所以你可以添加類似:

X_INCFLAGS=`pkg-config mylib --cflags-only-I` 
X_CXXFLAGS+="$X_INCFLAGS" 

configure.ac。問:您是否在configure.ac中使用PKG_CHECK_MODULES宏?

+0

是的,我正在使用PKG_CHECK_MODULES。它給我什麼加(或更少)?謝謝! – j4x