реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Error[Li005]: no definition for...
vesago
сообщение Sep 10 2018, 18:47
Сообщение #1


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Здравствуйте. Хочу прикрутить к проекту пример 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. Подскажите, пожалуйста - что ему (линкеру) не хватает? Пример без проблем собирается. Не могу определить критические отличия..

Прикрепленный файл  test_2018_09102215_45.rar ( 162.9 килобайт ) Кол-во скачиваний: 15
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 11 2018, 05:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

Компоновщику глубоко фиолетовы все .h вместе взятые. Он про них ничего не знает. Ему нужны только .obj, .lib. И значит тел данных функций у Вас там нет. А тела в .obj/.lib попадают из файлов исходного кода (.c/.cpp/.asm/...) усилиями компилятора либо из готовых библиотек (.lib) Отсюда следует что требуемых файлов исходного кода (или .lib) у Вас нет в проекте.
Go to the top of the page
 
+Quote Post
vesago
сообщение Sep 13 2018, 10:36
Сообщение #3


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 13 2018, 10:55
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(vesago @ Sep 13 2018, 13:36) *
На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.

Еще такое бывает когда в файлах *.c пытаются использовать функции из файлов *.cpp без объявления пространства имен extern "C" { }
Так что компоновщик тут совсем не при чем. Компоновщик пишет другое сообщение когда что-то не находит.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 11:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016