Главная arrow Программирование arrow ARM arrow IAR EW ARM: Error[Pe147]: declaration is incompatible... Saturday, August 19 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

IAR EW ARM: Error[Pe147]: declaration is incompatible... Версия для печати
Написал microsin   
08.04.2009

Долго не мог разобраться, почему возникала ошибка 
Error[Pe147]: declaration is incompatible with "TParams const __data папка_проекта\vars.c 22 paramDefault" (declared at line 22).

У меня была задана структура TParams как тип:
typedef __packed struct _Params
{
    u32 paramseed;
    u32 versionARM;
    ...
    u8 lblstate[15];
    u16 CRC;
} TParams;

Грешил даже на то, что структура назначалась как переменной, так и константе:   
TParams param;
const TParams paramDefault =
{
    0xAA55AA55,
    0x00000000,
    ...
    LABEL_DEFAULT,
    0x0000
};

Оказалось все проще (хотя сразу не разобрался потому, что компилятор не указывал на это место) - я просто забыл ключевое слово const в хедере, где предварительно объявлялись param и paramDefault. Было там так (это ошибочно):
extern TParams param;
extern TParams paramDefault;

А для исправления ошибки должно быть так:
extern TParams param;
extern const TParams paramDefault;

 

Комментарии  

  1. #2 Serg
    2014-05-2617:10:53 Очень содержательная статья. Спасибо!
  2. #1 DEZIN
    2011-04-0700:27:24 допомогло, дякую! ця помилка виникає в основному при розбіжностях в хедер і Сі файлах …

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017