2

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

我知道我有Cflags可以传递任何编译器标志的字段,但它是通用的,并autoconf通过放置我的所有选项来解决它,只要包含路径 in X_CFLAGSbut not 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

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

4

1 回答 1

3

pkg-config具有--cflags-only-I仅在 中产生包含路径的选项Cflags。因此,您可以添加如下内容:

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

configure.ac. 问:你在使用PKG_CHECK_MODULESconfigure.ac吗?

于 2012-07-05T20:18:22.327 回答