[mdk-re] Re: mmsystem.h - с ошибкой?

Oleg N. Kayunov =?iso-8859-1?q?okayunov_=CE=C1_mtu-net=2Eru?=
Вс Июл 22 12:39:11 MSD 2001


Mikhail Zabaluev wrote:
> 
> Hello Oleg,
> 
> On Sat, Jul 21, 2001 at 03:20:02PM +0400, Oleg N. Kayunov wrote:
> >
> > Натыкаюсь (последний раз - при трансляции SimGear) на сообщение:
> > In file included from /usr/include/windows.h:33,
> >                  from GLBitmaps.cxx:7:
> > usr/include/mmsystem.h:28: parse error before string constant
> >
> > Этот файл (и mmsystem.h и windows.h) написан не мною :-)
> >
> >       Потому вопрос:
> > Что-то в нем (них) надо поменять?
> >
> >       Для справки: 28 строка в mmsystem.h имеет вид
> > typedef WORD    VERSION;        /* major (high byte), minor (low byte)
> > */
> >       (IMHO - ничего криминального),
> >       ей предшествует:
> > #define MAX_JOYSTICKOEMVXDNAME        260
> >       Разве что имя сликом длинное?
> 
> Попробуйте выдать результат работы препроцессора (gcc -E srcfile.c >srcfile.i)
> и посмотреть, какие макросы как раскрылись.
	Мда-а-а... Вы очень правы:
typedef WORD "0.0.16";
	Но ведь это - _системный_ header файл. А VERSION - наверняка и в других
пакетах примерно так же используется/определяется (или нет?) - у меня
уже не первый раз слетает трансляция со ссылкой на этот header (# строки
не помню).
	Нет-ли необходимости что-то поправить в системных файлах?
	Пока что я просто закомментарил эту строку и трансляция пошла дальше.
	
	И остановилась на другом совсем файле, обнаружив конфликт опять-таки в
_системных_ header- ах:
=============================================================================
In file included from /usr/include/g++-3/stl_alloc.h:72,
                 from /usr/include/g++-3/alloc.h:22,
                 from /usr/include/g++-3/std/bastring.h:40,
                 from /usr/include/g++-3/string:7,
                 from ../../simgear/misc/sg_path.hxx:36,
                 from sg_time.cxx:58:
/usr/include/pthread.h: At top level:
/usr/include/pthread.h:668: declaration of C function `int
pthread_atfork (void (*) (), void (*) (), void (*) ())' conflicts with
/usr/include/unistd.h:984: previous declaration `int pthread_atfork
(void (*) (), void (*) (), void (*) ())' here
=============================================================================
	Так все-ли в порядке с _системными_ header - файлами?
	Или тут достаточно добавить некую опцию в команду трансляции? С учетом
того, продекларированные прототипы не отличаются?
	(Я раньше в командных строках практически не транслировал - все больше
Watcom, Turbo C...)

> 
> --
> Stay tuned,
>   MhZ                                     JID: mookid на jabber.org
> ___________
> "Bite off, dirtball."
> Richard Sexton, richard на gryphon.COM

-- 
            Best regards, Oleg N. Kayunov.





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