Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Error[Li005]: no definition for...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
vesago
Здравствуйте. Хочу прикрутить к проекту пример Mass Storage. Накидал тестовый проектик. Перенес в него нужные исходники из примера. Компилируется но не линкуется.

Error[Li005]: no definition for "ScsiCommImpl" [referenced from D:\WORK\test\Debug\Obj\scsi.o]
Error[Li005]: no definition for "EntrCritSection" [referenced from D:\WORK\test\Debug\Obj\scsi.o]
Error[Li005]: no definition for "ExtCritSection" [referenced from D:\WORK\test\Debug\Obj\scsi.o]

В принципе ругается, что в файле scsi.c используются функции, определения которых не находит. Хотя определения всех этих функций есть в подключенном scsi.h. Подскажите, пожалуйста - что ему (линкеру) не хватает? Пример без проблем собирается. Не могу определить критические отличия..

Нажмите для просмотра прикрепленного файла
jcxz
Цитата(vesago @ Sep 10 2018, 21:47) *
В принципе ругается, что в файле scsi.c используются функции, определения которых не находит. Хотя определения всех этих функций есть в подключенном scsi.h. Подскажите, пожалуйста - что ему (линкеру) не хватает?

Компоновщику глубоко фиолетовы все .h вместе взятые. Он про них ничего не знает. Ему нужны только .obj, .lib. И значит тел данных функций у Вас там нет. А тела в .obj/.lib попадают из файлов исходного кода (.c/.cpp/.asm/...) усилиями компилятора либо из готовых библиотек (.lib) Отсюда следует что требуемых файлов исходного кода (или .lib) у Вас нет в проекте.
vesago
На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.
AlexandrY
Цитата(vesago @ Sep 13 2018, 13:36) *
На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.

Еще такое бывает когда в файлах *.c пытаются использовать функции из файлов *.cpp без объявления пространства имен extern "C" { }
Так что компоновщик тут совсем не при чем. Компоновщик пишет другое сообщение когда что-то не находит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.