| Форум РадиоКот https://radiokot.ru/forum/ |
|
| IAR правильное оформление библиотеки https://radiokot.ru/forum/viewtopic.php?f=20&t=46460 |
Страница 1 из 1 |
| Автор: | sich_zp [ Ср апр 13, 2011 10:05:39 ] |
| Заголовок сообщения: | IAR правильное оформление библиотеки |
Ситуация: хочу скрыть исходники некоторых функций. В 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 [ Ср апр 13, 2011 10:14:48 ] |
| Заголовок сообщения: | Re: IAR правильное оформление библиотеки |
на сколько я понимаю, вы должны компилировать библиотеку с функцией без extern, а при компиляции основного файла иметь хидер, где будет описан прототип этой функции, но уже с extern. и естественно, линкер должен прилинковывать вашу библиотеку. |
|
| Автор: | sich_zp [ Ср апр 13, 2011 10:33:06 ] |
| Заголовок сообщения: | Re: IAR правильное оформление библиотеки |
Есть хидер с описание прототипа (забыл упомянуть). В нем указано extern void Test(void); Все равно не находит Пробовал и с extern и без него и в разных вариациях. |
|
| Автор: | Vov123 [ Ср апр 13, 2011 10:37:33 ] |
| Заголовок сообщения: | Re: IAR правильное оформление библиотеки |
В проекте надо подключить. |
|
| Автор: | sich_zp [ Ср апр 13, 2011 10:50:29 ] |
| Заголовок сообщения: | Re: IAR правильное оформление библиотеки |
Да подключил я. Не обращался бы, если бы что-то не так подключил. 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 [ Ср апр 13, 2011 20:54:09 ] |
| Заголовок сообщения: | Re: IAR правильное оформление библиотеки |
sich_zp, читать лень?.. Код: cmd -> ...\avr\bin -> xar.exe Удобнее, перечисление файлов r90 в текстовой засунуть. Имя - строка. Код: xar.exe -V -x list.txt -o security.lib Именно "security.lib" пристыковывается к проекту... |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


