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

Error[Li005]: no definition for...

Здравствуйте. Хочу прикрутить к проекту пример 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

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


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

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

Компоновщику глубоко фиолетовы все .h вместе взятые. Он про них ничего не знает. Ему нужны только .obj, .lib. И значит тел данных функций у Вас там нет. А тела в .obj/.lib попадают из файлов исходного кода (.c/.cpp/.asm/...) усилиями компилятора либо из готовых библиотек (.lib) Отсюда следует что требуемых файлов исходного кода (или .lib) у Вас нет в проекте.

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


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

На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.

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


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

На другом форуме помогли - в опциях проекта нужно было включить опцию C++ inline semantics.

Еще такое бывает когда в файлах *.c пытаются использовать функции из файлов *.cpp без объявления пространства имен extern "C" { }

Так что компоновщик тут совсем не при чем. Компоновщик пишет другое сообщение когда что-то не находит.

 

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


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

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

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

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

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

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

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

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

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

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