pkg-config:包含C和C ++的路径

时间:2012-07-04 20:07:21

标签: gcc autotools autoconf automake pkg-config

是否可以在pkg-config文件(mylib.pc.in)中指定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

任何帮助将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:3)

pkg-config的选项--cflags-only-I仅生成Cflags中的包含路径。所以你可以添加如下内容:

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

configure.ac。问:您使用PKG_CHECK_MODULES中的configure.ac宏吗?