Добрый день! Не могу скомпилировать ни одну программу с использованием функций библиотеки которая поставляется с ADAMом. Вроде все делаю правильно. Создаю новый проект. Жму Project->Add Item, выбираю UTILITYS.LIB, жму Add->Done. Затем в main.cpp подключаю 5510drv.h (#include "5510drv.h"). В пути поиска добавил каталог 5510_LIB. Вызов какой нибудь функции, например ADAMdelay(500) - и ошибка. Linker Error: Undefined symbol ADAMdelay(500) in module main.cpp. Просматривая форум таких вопросов больше не нашел, у всех все компилируется... Подскажите кто может.
Я бы сначала положил библиотеки в один каталог с исходными файлами и посмотрел, дело в путях или в чем другом.
Положил файлы 5510drv.h и UTILITYS.lib в каталог с исходными файлами. Добавил UTILITYS.lib в проект. Не помогло. Что еще может быть?
>Затем в main.cpp подключаю
Для начала переименуй main.cpp в main.c
Ибо в файле 5510drv.h нет строчечки extern "C"
Потому-что идёт искажение имён, в obj файле функция обзывается типа @ADAMDelay$qi, на не _ADAMDelay как в библиотеке гutilitys.lib
Если понял о чём я написал, то всё получиться, если нет стукнись ICQ 244926182
Переименовал main.cpp в main.c. Внес эти изменения в проект. Теперь пишет следующие ошибки (хотя я и не вызывал ни какую функцию, main.c - пустой, в смысле одна main и включение "5510drv.h"):
Linker Error: Undefined symbol _FilterCh in module UTILITYS;
Linker Error: Undefined symbol _DIModuleCh in module UTILITYS;
Linker Error: Undefined symbol _DISlotPos in module UTILITYS;
Linker Error: Undefined symbol _HighWidth in module UTILITYS;
Linker Error: Undefined symbol _LowWidth in module UTILITYS;
Может у меня компилятор не тот. В About'e написано Borland Turbo C++ 3.0 92-года. И если использовать только С то это значит что отказаться от использования классов и еще много чего на что я так рассчитывал, или есть какой-то еще способ...
Первоначально опубликовано compm2001
Linker Error: Undefined symbol _FilterCh in module UTILITYS; Linker Error: Undefined symbol _DIModuleCh in module UTILITYS; Linker Error: Undefined symbol _DISlotPos in module UTILITYS; Linker Error: Undefined symbol _HighWidth in module UTILITYS; Linker Error: Undefined symbol _LowWidth in module UTILITYS;
Эти символы находятся в hio*.lib
Инженер-системотехник
+7 (916) 477 3925
Максим Ананских Эти символы находятся в hio*.lib
Добавил в проект файл "hios.lib". Теперь все компилируется нормально, но когда я пытаюся вызвать какую нибудь функцию, например ADAMdelay(500) - и ошибка. Linker Error: Undefined symbol ADAMdelay(500) in module main.c.
Первоначально опубликовано compm2001
Undefined symbol ADAMdelay(500) in module main.c.
А ADAMdelay - в utility*.lib
Инженер-системотехник
+7 (916) 477 3925
Первоначально опубликовано Максим Ананских
Первоначально опубликовано compm2001
Undefined symbol ADAMdelay(500) in module main.c.
А ADAMdelay - в utility*.lib
Да, я понимаю, у меня UTILITYS.LIB в проект добавлена... Что то еще нужно...
Может компилятор не тот, можно ссылочку с компилятором который действительно подходит. Или если не затруднит на е-mail можно скинуть coderinside@mail.ru.
Я пробовал в Borland C++ 3.1, все компилируется. Посмотрите, может у Вас опция "Generate underbars" не установлена в Advanced code generation?
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме