Как сделать так, чтобы Visual C ++ 2010 распознавал объявление "_extension" - PullRequest
3 голосов
/ 22 ноября 2010

При компиляции программы Visual Studio 2010 я включил каталог python2.5.В файле _types.h есть код:

#ifndef __off64_t_defined
__extension__ typedef long long _off64_t;
#endif

с ошибкой при расширении:

это объявление не имеет класса хранения или спецификатора типа.

Что не так?

Ответы [ 2 ]

2 голосов
/ 22 ноября 2010

Цитирую руководство GCC:

   `-pedantic' and other options cause warnings for many GNU C
extensions.  You can prevent such warnings within one expression by
writing `__extension__' before the expression.  `__extension__' has no
effect aside from this.

Я бы сказал, что безопасно игнорировать его для VC2010.Так что просто определите это как ничто.

#define __extension__
0 голосов
/ 22 ноября 2010

Не зная больше, я не могу догадаться, какие это может быть побочные эффекты, но вы можете попробовать:

#define __extension__

Это заставит препроцессор заменить все вхождения слова ничем.

Но это, вероятно, из-за отсутствия включаемого файла, который определяет это по причине.Возможно, вы включили заголовок, предназначенный для внутреннего использования?Может быть, есть другой заголовок, который включает этот, а также отсутствующее определение, которое вы могли бы использовать вместо этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...