Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 19.11.07 07:22
Оценка:
После перевода проекта с VS7.1 на VS8 при компиляции debug версии мне выдается куча сообщений об ошибках компиляции.
Таких:

error C2059: syntax error : 'constant'    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488    
error C2733: second C linkage of overloaded function '_dupenv_s_dbg' not allowed    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488


И таких:

Error    83    error C2039: 'calloc' : is not a member of '`global namespace''    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22    
Error    84    error C2873: 'calloc' : symbol cannot be used in a using-declaration    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22


Может знаете, с чем это может быть связано?
Re: Ошибки в stdlib
От: Lorenzo_LAMAS  
Дата: 19.11.07 12:01
Оценка:
Не могли бы вы выделить минимальный пример, на котором воспроизводится данная ошибка?
Of course, the code must be complete enough to compile and link.
Re[2]: Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 19.11.07 12:40
Оценка:
L_L>Не могли бы вы выделить минимальный пример, на котором воспроизводится данная ошибка?
В том то и дело, что все эти ошибки указывают на библиотеки stdlib.h и cstdlib.
При компиляции в 7 студии их не возникало — вот я и подумал, что с этой библиотекой что-то случилось.
Или где-то она у меня неправильно используется, что компилятор 7 студии позволял.
Re[3]: Ошибки в stdlib
От: Lorenzo_LAMAS  
Дата: 19.11.07 12:43
Оценка:
АК>В том то и дело, что все эти ошибки указывают на библиотеки stdlib.h и cstdlib.
При простом подключении <stdlib.h> или <cstdlib> таких ошибок нет. Значит, ИМХО, что-то включается до stdlib.h, что и приводит к проблемам.
Of course, the code must be complete enough to compile and link.
Re: Ошибки в stdlib
От: AleksandrN Россия  
Дата: 20.11.07 08:31
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>После перевода проекта с VS7.1 на VS8 при компиляции debug версии мне выдается куча сообщений об ошибках компиляции.

АК>Таких:

АК>
АК>error C2059: syntax error : 'constant'    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488    
АК>error C2733: second C linkage of overloaded function '_dupenv_s_dbg' not allowed    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488    
АК>


АК>И таких:


АК>
АК>Error    83    error C2039: 'calloc' : is not a member of '`global namespace''    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22    
АК>Error    84    error C2873: 'calloc' : symbol cannot be used in a using-declaration    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22    
АК>


АК>Может знаете, с чем это может быть связано?



Собираешь проект из командной строки и на компьютере сейчас установлены обе версии VS?

Эта ошибка может возникать из-за того, что при компиляции запускается файл cl.exe из версии 7.1, а путь к заголовочным файлам указан для версии 8.0. Проверь значения переменных окружения или удали предыдущую версию компилятора.
Re[2]: Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 21.11.07 06:09
Оценка:
AN>Собираешь проект из командной строки и на компьютере сейчас установлены обе версии VS?

AN>Эта ошибка может возникать из-за того, что при компиляции запускается файл cl.exe из версии 7.1, а путь к заголовочным файлам указан для версии 8.0. Проверь значения переменных окружения или удали предыдущую версию компилятора.


После переустановки Windows vs7.1 я не ставил вообще.
Re[3]: Ошибки в stdlib
От: Lorenzo_LAMAS  
Дата: 21.11.07 08:52
Оценка:
Возьмите, например, такую строку:
error C2059: syntax error : 'constant'    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488


это будет

_CRTIMP __checkReturn_opt errno_t __cdecl _dupenv_s(__deref_out_ecount_z_opt(*_PBufferSizeInBytes) char **_PBuffer, __out_opt size_t * _PBufferSizeInBytes, __in_z const char * _VarName);


подобная ошибка будет, например, если я где-то сделаю #define _CRTIMP 10. Понятно, что у Вас нет такой глупости в коде, но все же...
Of course, the code must be complete enough to compile and link.
Re[4]: Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 22.11.07 09:31
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

АК>>В том то и дело, что все эти ошибки указывают на библиотеки stdlib.h и cstdlib.

L_L>При простом подключении <stdlib.h> или <cstdlib> таких ошибок нет. Значит, ИМХО, что-то включается до stdlib.h, что и приводит к проблемам.
Я нашел в чем дело. Это баг самой VS8 — нужно SP1 установить:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99509
Re[5]: Ошибки в stdlib
От: _cb_  
Дата: 22.11.07 14:29
Оценка:
АК>Я нашел в чем дело. Это баг самой VS8 — нужно SP1 установить:
АК>http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=99509

мне он не помог... у них какой-то баг при разворачивании вложенных дефайнов когда в дефайн передается параметром пустая строка...
я пока забил обошелся воркэраундом...

пля весь день сегодня убил...

когда в коде юзают __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1 передавая в качестве _DeclSpec пустую строку, то в самом низу эта пустая строка превращается в число 1... может это и не баг в чистом виде, дальше рыться уже нет желания...

#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _DstType, _Dst, _TType1, _TArg1) \
    __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _FuncName##_s, _DstType, _Dst, _TType1, _TArg1)


#define __DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX(_ReturnType, _ReturnPolicy, _DeclSpec, _FuncName, _SecureFuncName, _DstType, _Dst, _TType1, _TArg1) \
    _CRT_INSECURE_DEPRECATE(_SecureFuncName) _DeclSpec _ReturnType __cdecl _FuncName(_DstType *_Dst, _TType1 _TArg1);
Re: Ошибки в stdlib
От: korzh.pavel Россия  
Дата: 22.11.07 17:09
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>После перевода проекта с VS7.1 на VS8 при компиляции debug версии мне выдается куча сообщений об ошибках компиляции.

АК>Таких:

АК>
АК>error C2059: syntax error : 'constant'    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488    
АК>error C2733: second C linkage of overloaded function '_dupenv_s_dbg' not allowed    c:\program files\microsoft visual studio 8\vc\include\stdlib.h    488    
АК>


АК>И таких:


АК>
АК>Error    83    error C2039: 'calloc' : is not a member of '`global namespace''    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22    
АК>Error    84    error C2873: 'calloc' : symbol cannot be used in a using-declaration    c:\program files\microsoft visual studio 8\vc\include\cstdlib    22    
АК>


АК>Может знаете, с чем это может быть связано?


Что нибудь из этого используете:

_CRTDBG_MAP_ALLOC
#include <crtdbg.h>

?
Re[6]: Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 26.11.07 10:26
Оценка:
__>мне он не помог... у них какой-то баг при разворачивании вложенных дефайнов когда в дефайн передается параметром пустая строка...
__>я пока забил обошелся воркэраундом...

__>пля весь день сегодня убил...


Мне тоже не особо — скомпилировалась, но работать не стала. Куча багов с памятью. Поэтому плюнул и пишу дальше в 2003 студии.
Re[2]: Ошибки в stdlib
От: Александр Кузнецов www.omskcult.ru
Дата: 26.11.07 10:29
Оценка:
KP>Что нибудь из этого используете:
KP>_CRTDBG_MAP_ALLOC
KP>#include <crtdbg.h>
KP>?

Нет, не использую.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.