Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: вопросы по IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
IgorKossak
Цитата(forever failure @ Nov 16 2005, 15:55) *
Ага: а под версию 3.20D есть такая заплатка ?
а то у меня тоже C++ компилятор абсолютно не работоспособен -
простейшее объявление класса ещё может скомипилять, а стоит подключить какой-нить стандартный заголовок - тут же куча ошибок.
На iar.com ни хрена про ето не нашёл.

Странно, когда у меня была эта версия, я ни в чём подобном не нуждался.
Хотя проекты были и сложными и большими.
Видимо что-то в Вашем коде не так. wink.gif
forever failure
че не так ?

// main.cpp:
#include <complex>

int main (void)
{
return 0;
}

всё, курим бамбук .....
Old1
Цитата(forever failure @ Nov 16 2005, 21:27) *
че не так ?

// main.cpp:
#include <complex>

int main (void)
{
return 0;
}

всё, курим бамбук .....

В чем проблема-то? Если не компилится, то проверь С++ включен или нет, если не включен, то смотри выше как включить...
forever failure
Цитата(Old1 @ Nov 16 2005, 23:48) *
В чем проблема-то? Если не компилится, то проверь С++ включен или нет, если не включен, то смотри выше как включить...


Кгммммм.... Я вообще-то внимательно читаю посты, прежде чем задать такой идиотский вопрос.
"Смотри как включить" не включает - вот в том и проблема.
vet
Цитата(forever failure @ Nov 16 2005, 21:56) *
Кгммммм.... Я вообще-то внимательно читаю посты, прежде чем задать такой идиотский вопрос.
"Смотри как включить" не включает - вот в том и проблема.


Посты - это хорошо, но документацию изучать всё-таки нужно.
RTFM: AVR C/C++ Compiler Reference Guide, стр. 11 "Runtime Environment", абзац про CLIB и DLIB;
AVR Embedded Workench User Guide, стр. 53 "Creating a C++ application".
Old1
Цитата(forever failure @ Nov 16 2005, 21:56) *
Кгммммм.... Я вообще-то внимательно читаю посты, прежде чем задать такой идиотский вопрос.
"Смотри как включить" не включает - вот в том и проблема.

Вопросы нужно задавать корректно, т.е как можно подробнее описать проблему, а у вас из описания только
Цитата
всё, курим бамбук .....

и присоединяюсь к vet
Цитата
прежде чем задать такой идиотский вопрос
не мешало бы изучить мат. часть...
forever failure
Проблема ещё раз :

#include <complex>

int main (void)
{
return 0;
}
/* EOF*/

при компиляции получаю сообщения о 25 ошибках в заголовке <complex>
(см. прикреплённый error.txt)

и ещё, прошу подтвердить или опровергнуть такое предположение, возникшее после
изучения документации:

В IAR поддерживается сильно покоцаный C++, который назван EC++.

И всё равно, как бы там ни было, стандартный заголовок должен компилятся хоть как,
раз он входит в комплект поставки.
Old1
Цитата
при компиляции получаю сообщения о 25 ошибках в заголовке <complex>

В версии 4.11 все компилится без проблем. Версии 3.20 под рукой не оказалось, разыскал древнюю 2.26, там действительно появляются ошибки: ...Error[Pe040]..., но если в настройках компилятора установить режим "Use 64-bit dоubles", то все начинает работать. Попробуйте тоже самое сделать в вашей 3.20, может поможет...
Цитата
В IAR поддерживается сильно покоцаный C++, который назван EC++.

Насчет сильно покоцанный: все на свете относительно... EC++ - это, как я понял, embedded C++ и ИМХО главное его отличие от ANSI С++ это наличие расширений(добавлений) связанных со спецификой ядра AVR...
vet
forever failure
IAR 4.10B. Создал С++ проект, вставил исходник. Скомпилировалось сразу же, без всякого шаманства, без ошибок и предупреждений.
forever failure
с 64 bit double помогло. Однако Большой Бубен, однако, что не говори.

Цитата(Old1 @ Nov 18 2005, 02:01) *
EC++ - это, как я понял, embedded C++ и ИМХО главное его отличие от ANSI С++ это наличие расширений(добавлений) связанных со спецификой ядра AVR...

IMHO, не менее главное отличие ещё и отсутствие почти всех основных средств, предоставляемых C++.
"Спору нет вещица забавная, цены немалой", однако вобще зачем понадобилось исключать
из него например namespaces или templates непонятно.
С таким компилятором на C++ че-то делать особого смысла нет, ну разве что использовать inline и
объявление переменной в любом месте, где допустим оператор.
dxp
Цитата(forever failure @ Nov 18 2005, 20:10) *
с 64 bit double помогло. Однако Большой Бубен, однако, что не говори.

Цитата(Old1 @ Nov 18 2005, 02:01) *

EC++ - это, как я понял, embedded C++ и ИМХО главное его отличие от ANSI С++ это наличие расширений(добавлений) связанных со спецификой ядра AVR...

IMHO, не менее главное отличие ещё и отсутствие почти всех основных средств, предоставляемых C++.
"Спору нет вещица забавная, цены немалой", однако вобще зачем понадобилось исключать
из него например namespaces или templates непонятно.
С таким компилятором на C++ че-то делать особого смысла нет, ну разве что использовать inline и
объявление переменной в любом месте, где допустим оператор.

ЕС++ не имеет никакого отношения к специфике AVR. Это просто урезанный С++, в нем нет шаблонов, пространств имен, множественного наследования, информации о типе на рантайме, поддержки исключений и поддержки нового синтаксиса кастов.

Из полезного - есть основная фича С++ - классы. Инлайны, как раз, до кучи.

Кстати, в версиях EWAVR 4.xx введена поддержка шаблонов, неймспейсов, новых кастов, т.ч. получается есть почти все, что нужно - RTTI и исключения на AVR уж точно не нужны. Множественное наследование, возможно было бы не лишним, но, имхо, его отсутствие совершенно не мешает жить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.