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

Mikhail Zabaluev =?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Пн Июл 23 10:43:00 MSD 2001


Hello Oleg,

On Sun, Jul 22, 2001 at 12:52:54PM +0400, Oleg N. Kayunov wrote:
>
> 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 (# строки
> не помню).
> 	Нет-ли необходимости что-то поправить в системных файлах?
> 	Пока что я просто закомментарил эту строку и трансляция пошла
дальше.

windows.h и mmsystem.h - не системные.
Налицо типичный конфликт имен макросов. Попробуйте

#undef VERSION

перед директивой включения windows.h

-- 
Stay tuned,
  MhZ                                     JID: mookid на jabber.org
___________
A good reputation is more valuable than money.
		-- Publilius Syrus




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