Перейти к содержанию
    

Ошибка "Type 'Uint32' could not be resolved"

48 минут назад, dimka76 сказал:

Это похоже вы как раз опции для компилятора настроили.
А теперь надо еще опции для IDE настроить

 

image.thumb.png.0c7373ab969ccf9772f33ece99d902c4.png

После этого еще можно сделать Indexer->Rebuild для этого правой кнопкой мыши на имени проекта.

В выпадающем меню  Indexer->Rebuild

 

Спасибо. Сейчас попробую. Почему в проектах в С2000ware тогда сразу не прописывают нужные пути?

Посмотрел. Там указаны пути.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, dimka76 сказал:

Это похоже вы как раз опции для компилятора настроили.
А теперь надо еще опции для IDE настроить

 

image.thumb.png.0c7373ab969ccf9772f33ece99d902c4.png

После этого еще можно сделать Indexer->Rebuild для этого правой кнопкой мыши на имени проекта.

В выпадающем меню  Indexer->Rebuild

 

Можно прописать и там и там. Если пропишешь в одном месте, появится в другом. Но все равно надо прописывать в preinclude файл определения типов. Заметил, что вызывая разные примеры, в настройках показывает разные версии компиляторов. Возможно версия компиляторов имеет значение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Установил CCS 12 версии. В главном файле примера подключен хидер где определены переменные 

extern __cregister volatile unsigned int IFR;
extern __cregister volatile unsigned int IER;

но компилятор дает ошибку  Symbol 'IFR' could not be resolved .  Не могу понять в чем же дело. Примеры фирменные.  

Может это из за виндовс? У меня стоит 7. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, khlenar сказал:

определены переменные 

extern __cregister volatile unsigned int IFR;
extern __cregister volatile unsigned int IER;

но компилятор дает ошибку  Symbol 'IFR' could not be resolved .  Не могу понять в чем же дело. Примеры фирменные.  

Может это из за виндовс? У меня стоит 7.

из-за пятен на солнце...

PS: Может всё-таки начать с освоения языка? си. Тогда и не понадобится колёса пинать......  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, x893 сказал:

Доступа нет.

6 часов назад, jcxz сказал:

из-за пятен на солнце...

PS: Может всё-таки начать с освоения языка? си. Тогда и не понадобится колёса пинать......  :unknw:

Язык я знаю.  Разные версии IDE по разному ведут. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В последнем случае ошибку дает из за ключевого слова "__cregister".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Когда сам собираешь проект, нормально компилирует. Спасибо. Буду разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, khlenar сказал:

Язык я знаю.

Очевидно что нет. Так как - то, что вы называете "определением переменных", таковым не является. Определение - оно без extern. То что у вас - это объявление. Оно говорит компилятору, что существует некая переменная с таким именем. И где-то она должна быть определена. Но этого определения нигде нет.

И сообщение "Symbol could not be resolved" выдаётся компиляторами как раз при отсутствии определения объекта. И "разные версии IDE" тоже не при чём - все примерно так себя ведут и выдают примерно такое сообщение об ошибке.

PS: Учите матчасть. Языка вы не знаете, даже самых основ. Оттого и бултыхаетесь в простом вопросе уже который день.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 минут назад, jcxz сказал:

Очевидно что нет. Так как - то, что вы называете "определением переменных", таковым не является. Определение - оно без extern. То что у вас - это объявление.

И сообщение "Symbol could not be resolved" выдаётся компиляторами как раз при отсутствии определения объекта. И "разные версии IDE" тоже не при чём - все примерно так себя ведут и выдают примерно такое сообщение об ошибке.

PS: Учите матчасть. Языка вы не знаете, даже самых основ. Оттого и бултыхаетесь в простом вопросе уже который день.

Под определения типа я называл первые ошибки в начале. Это typedef и т.д.

Первый пост  < компилятор выдает ошибку "Type 'Uint32' could not be resolved" >

Да, объявление переменных. Перепутал.

Если убрать ключевое слово "__cregister", то ошибка исчезает ,  это в 12 версии CCS. В 9 версии такой ошибки нет.

Я спорить с вами не хочу. Свое мнение оставьте при себе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

46 минут назад, khlenar сказал:

Первый пост  < компилятор выдает ошибку "Type 'Uint32' could not be resolved" >

Да, объявление переменных. Перепутал.

Там (в 1-м посте) не на "объявление переменных" ругань, а на отсутствие "объявления типа Uint32".

Вы не понимаете разницы между типом и объектом данного типа (переменной). И валите всё в одну кучу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/26/2023 at 10:48 AM, jcxz said:

Очевидно что нет. Так как - то, что вы называете "определением переменных", таковым не является. Определение - оно без extern. То что у вас - это объявление. Оно говорит компилятору, что существует некая переменная с таким именем. И где-то она должна быть определена. Но этого определения нигде нет.

И сообщение "Symbol could not be resolved" выдаётся компиляторами как раз при отсутствии определения объекта. И "разные версии IDE" тоже не при чём - все примерно так себя ведут и выдают примерно такое сообщение об ошибке.

PS: Учите матчасть. Языка вы не знаете, даже самых основ. Оттого и бултыхаетесь в простом вопросе уже который день.

Вообще-то в стандарте языка везде фигурирует термин declare, что переводится как объявление !!!

Так что вопросы терминологии это к вам, а не к @khlenar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, dimka76 сказал:

Так что вопросы терминологии это к вам, а не к @khlenar

И вам советую открыть учебник по си. Начните с этого:  http://cppstudio.com/post/2647/#:~:text=Объявление предоставляет основные свойства символа,переменная%2C где эта переменная находится.

Цитата:

"Использование extern позволяет объявить переменную, не определяя ее, он сообщает, что переменная находится где-то в другом месте."

Или вот от мелкософта: https://learn.microsoft.com/ru-ru/cpp/cpp/declarations-and-definitions-cpp?view=msvc-170

цитата:

"объявления extern

Программа C++ может содержать несколько единиц компиляции. Чтобы объявить сущность, определенную в отдельном блоке компиляции extern , используйте ключевое слово. Информации в объявлении достаточно для компилятора. Однако если определение сущности не удается найти на шаге связывания, компоновщик вызовет ошибку."

Вот именно эту ошибку и видит ТС.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, jcxz сказал:

Там (в 1-м посте) не на "объявление переменных" ругань, а на отсутствие "объявления типа Uint32".

Вы не понимаете разницы между типом и объектом данного типа (переменной). И валите всё в одну кучу.

Объявление переменных это уже в последнем случае. 

extern __cregister volatile unsigned int IFR;
extern __cregister volatile unsigned int IER;

Я уже писал, это из за кл.слова __cregister

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, khlenar сказал:

Объявление переменных это уже в последнем случае. 

extern __cregister volatile unsigned int IFR;

именно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...