【问题标题】:pkg-config: include paths for C and C++pkg-config:包含 C 和 C++ 的路径
【发布时间】:2012-07-04 20:07:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: gcc autotools autoconf automake pkg-config


    【解决方案1】:

    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 宏?

    【讨论】:

    • 是的,我正在使用 PKG_CHECK_MODULES。它能给我带来什么好处(或更少)吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2011-03-05
    • 1970-01-01
    • 2012-04-22
    • 2016-11-07
    • 2013-02-25
    • 1970-01-01
    相关资源
    最近更新 更多