Страница 1 из 1

свои LIB в Keil (С51)

Добавлено: Ср май 09, 2012 21:58:36
c717411
Хочу сделать свою библиотеку, чтобы юзать нужные мне функции в различных проектах.
Взял для теста две функции в либе (в функциях смысла не искать, они тупо для теста):

Код: Выделить всё

#include <reg51.h>
void set_port(unsigned char f)
{
    P3=f;
}
void delay()
{
int i;
for(i=0;++i;i<40000);
}
Заголовочный файл:

Код: Выделить всё

#ifndef __MYLIB_H__
#define __MYLIB_H__
extern void set_port(unsigned char f);
extern void delay(void);
#endif
И проект с полученной либой:

Код: Выделить всё

#include <reg51.h>
#include <mylib.h>
void main()
{
   P3=0x81;
   set_port(0x00);
   delay();
   set_port(0xAA);
   delay();
}
Библиотека собирается нормально. А при ее использовании и сборке проекта - куча варнингов типа:
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: DELAY
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: _SET_PORT
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: DELAY

Причем HEX файл создается, но не работает как положено. Не могу никак понять причину, в документации по Кеил тоже ничего толкового нет, только как создать LIB и всё. Помогите пофиксить этот маленький проект. Исходники прилагаются. Спасибо.

2moders: перенесите плз топик в "Микроконтроллеры и ПЛИС"

Re: свои LIB в Keil (С51)

Добавлено: Вс май 13, 2012 22:44:50
ilya_z
1. Уберите из проекта библиотеки файл startup.a51
2. Добавьте в тестовый проект скомпиленную библиотеку .lib
все должно работать

Re: свои LIB в Keil (С51)

Добавлено: Вт май 15, 2012 15:33:12
Gudd-Head
c717411 писал(а):2moders: перенесите плз топик в "Микроконтроллеры и ПЛИС"
Сделано!
В следующий раз пользуйтесь кнопкой Изображение для привлечения модераторов.

Re: свои LIB в Keil (С51)

Добавлено: Ср май 16, 2012 17:38:17
c717411
ilya_z писал(а):1. Уберите из проекта библиотеки файл startup.a51
2. Добавьте в тестовый проект скомпиленную библиотеку .lib
все должно работать
Спс, так заработало.