[devel] Re: [mdk-re] Re: [mdk-re] include_next, kdevelop и все такое

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Пн Апр 30 12:48:09 MSD 2001


On Mon, 30 Apr 2001 11:09:16 +0300
Alexander Bokovoy <ab на avilink.net> wrote:

> On Mon, Apr 30, 2001 at 05:49:43AM +0400, Dmitry Samoyloff wrote:
> > 29 Апрель 2001 12:06, Sergey Vlasov wrote:
> > > On Sun, 29 Apr 2001 02:21:06 +0400
> > >
> > > Dmitry Samoyloff <dsamoyloff на mail.ru> wrote:
> > > > Здравствуйте!
> > > >
> > > > Извиняйте за оффтопик, но это появилось после установки Spring и
> кто-то,
> > > > может быть, знает в чем дело. Во-первых, мой Qt/KDE-проект стал
> выдавать
> > > > такие вот warnings:
> > > >
> > > > In file included from /usr/lib/qt2/include/qwindowdefs.h:48,
> > > > <...>
> > > > /usr/include/limits.h:124:3: warning: ISO C does not allow
> #include_next
> > > >
> > > > В /usr/include/limits.h написано следующее:
> > > >
> > > > #if defined __GNUC__ && !defined _GCC_LIMITS_H_
> > > > /* `_GCC_LIMITS_H_' is what GCC's file defines.  */
> > > > # include_next <limits.h>
> > > >
> > > > Думаю, что-то надо подкрутить в configure.in или где-то рядом :-)
> > > > Помогите
> > > > pls, а то в проекте полсотни исходных файлов -- и почти каждый
> ругается,
> > > > ужас
> > > > просто!
> > >
> > > А с какими ключами вызывается компилятор? Похоже, что это виновата
> > > комбинация -ansi -pedantic c -I/usr/include. Кстати, надо бы найти,
> откуда
> > > берется -I/usr/include, и выкорчевать - даже в info gcc написано,
> что эта
> > > опция может вызывать глюки.
> > 
> > Спасибо, что откликнулись на мой вопрос!
> > Опции такие:
> > g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include -I/usr/lib/qt2/include
> > -I/usr/X11R6/include     -O2 -fno-exceptions -fno-check-new -Wall
> -pedantic 
> > -W -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long
> > -fno-builtin -O0 -g3 -Wall  -c file.cpp
> > 
> > Значит, нужно попробовать убрать -pedantic и -I/usr/include (странно,
> кстати, 
> > такой ведь безобидный ключик). Только вот эти опции генерятся
> автоматически 
> > из Makefile.am, а что в нем подправить -- не знаю :( Буду очень
> признателен 
> > за подсказку.
> -I/usr/include является отнюдь не безобидным ключем, ведь он вносит
> /usr/include в список директорий для поиска пользовательских файлов
> заголовков, причем в самое начало этого списка. Тем самым, Вы
> заставляете
> компилятор игнорировать, например, foo.h в /usr/lib/qt2/include, 
> если он есть в /usr/include.

В данном случае проблема не в таком конфликте, а в файлах из каталога
/usr/lib/gcc-lib/i586-mandrake-linux/2.96/include/. Например, там есть
limits.h от компилятора, а в /usr/include - от glibc, и они друг друга
включают через #include_next. Но при обработке файлов из gcc-lib
расширения gcc разрешены даже при использовании -pedantic, а в
/usr/include возникает ругань.

А вообще с -I/usr/include у меня были серьезные проблемы, когда цеплялся
не тот db.h, который был нужен.

И, кстати, подобная ошибка встречается во многих местах:

$ gnome-config --cflags gnome
-I/usr/include -DNEED_GNOMESUPPORT_H -I/usr/lib/gnome-libs/include
-I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include
-I/usr/X11R6/include
$ rpm -qf `which gnome-config`
gnome-libs-devel-1.2.11-ipl4mdk
$ gtkmm-config --cflags
-I/usr/lib/gtkmm/include -I/usr/include -I/usr/lib/glib/include
-I/usr/X11R6/include -I/usr/lib/sigc++/include
$ rpm -qf `which gtkmm-config`
gtkmm-devel-1.2.5-ipl1mdk
$ sane-config --cflags
-I/usr/include
$ rpm -qf `which sane-config`
sane-1.0.4-ipl1mdk

Так что возможностей нацеплять -I/usr/include хоть отбавляй.
_______________________________________________
Devel mailing list
Devel на linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel



Подробная информация о списке рассылки Devel