2012-07-04 4 views
1

Можно ли указать пути включения для C и C++ в файле pkg-config (mylib.pc.in)?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. В: Используете ли вы макрос PKG_CHECK_MODULES в configure.ac?

+0

Да, я использую PKG_CHECK_MODULES. Дает ли он мне что-нибудь плюс (или меньше)? Благодаря! – j4x

 Смежные вопросы

  • Нет связанных вопросов^_^