是否可以在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
任何帮助将不胜感激。 谢谢!
答案 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
宏吗?