IAR правильное оформление библиотеки

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
sich_zp
Родился
Сообщения: 7
Зарегистрирован: Вт дек 14, 2010 11:15:48

IAR правильное оформление библиотеки

Сообщение sich_zp »

Ситуация: хочу скрыть исходники некоторых функций. В IAR. Для этого хочу создать откомпилированную библиотеку.
Создаю новый проект. В настройках "General options", на закладке "Output" указываю что это библиотека.
Создаю текст функции. Самый простой для теста.

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

#ifndef FUNCS_H
#define FUNCS_H

extern "C" void Test(void)
{

}
#endif


Компилирую все это. Компиляция проходит хорошо, без ошибок. В результате получаю файл "Func.r90". Этот файл перемещаю в каталог той программы, к которой подключаю данный модуль. Подключаю к проекту данный файл. Он подключается. Вызываю функцию из программы как Test(); После компиляции линкер выдает такую ошибку

Error[e46]: Undefined external "Test" referred in main ( Q:\Program\Controllers\ElFiltr\ElFiltr\Debug\Obj\main.r90 )

Вопрос: Почему линкер эту функцию ищет не там где надо? И как надо все это сделать, чтобы заработало?
Заранее спасибо за ответ!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: IAR правильное оформление библиотеки

Сообщение ARV »

на сколько я понимаю, вы должны компилировать библиотеку с функцией без extern, а при компиляции основного файла иметь хидер, где будет описан прототип этой функции, но уже с extern. и естественно, линкер должен прилинковывать вашу библиотеку.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
sich_zp
Родился
Сообщения: 7
Зарегистрирован: Вт дек 14, 2010 11:15:48

Re: IAR правильное оформление библиотеки

Сообщение sich_zp »

Есть хидер с описание прототипа (забыл упомянуть). В нем указано

extern void Test(void);

Все равно не находит Пробовал и с extern и без него и в разных вариациях.
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: IAR правильное оформление библиотеки

Сообщение Vov123 »

В проекте надо подключить.
sich_zp
Родился
Сообщения: 7
Зарегистрирован: Вт дек 14, 2010 11:15:48

Re: IAR правильное оформление библиотеки

Сообщение sich_zp »

Да подключил я. Не обращался бы, если бы что-то не так подключил.

Linking
xlink.exe Q:\Program\Controllers\ElFiltr\ElFiltr\Func.r90 Q:\Program\Controllers\ElFiltr\ElFiltr\Debug\Obj\main.r90 -o Q:\Program\Controllers\ElFiltr\ElFiltr\ ............

Может что в настройках надо выставить?
Аватара пользователя
asteroid7
Опытный кот
Сообщения: 703
Зарегистрирован: Вс янв 18, 2009 21:12:49

Re: IAR правильное оформление библиотеки

Сообщение asteroid7 »

sich_zp, читать лень?..

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

cmd -> ...\avr\bin -> xar.exe

Удобнее, перечисление файлов r90 в текстовой засунуть. Имя - строка.

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

xar.exe -V -x list.txt -o security.lib

Именно "security.lib" пристыковывается к проекту...
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»