Комбинирование сишной либки и приложения на с++ при сборке для ARM — почему не дружит ARM c extern c?
Здравствуйте. Имеется приложение на C++, который использует 1 сишную либку, с множеством сишных функций. Они разумеется описаны в заголовочниках. с помощью Extern «C»(если есть __cplusplus) Само по себе приложение - работа с множеством данных, ничего особо и замороченного в нем нет. Компилируем все это дело под x86 с помощью g++. Все работает так как и должно быть. Но это приложение должно быть залито на микроконтроллер iWave, соответственно требуется сборка под ARM. Используется компилятор arm-linux-gnueabihf-g++. Были вроде скачены и обновлены все пакеты на убунту, для сборки с помощью этого компилятора. Сама либка включена, варнингов нет, однако возникают ошибки во всех используемых extern функциях. Т.е. пишется:
/home/user/workspace/project/arm/lib.a(manager.o): In function `Agent_From': manager.c:(.text+0x69e): undefined reference to `Agent_Get' manager.c:(.text+0x6c4): undefined reference to `Agent_Get' manager.c:(.text+0x6ea): undefined reference to `Agent_Get' manager.c:(.text+0x710): undefined reference to `Agent_Get' manager.c:(.text+0x750): undefined reference to `Agent_Get'
Как быть и куда копать? Может кто-то сталкивался с похожей проблемой? В интернете видел что некоторые решали данную проблему с помощью "-fpermissive" однако так решить не удалось данную проблему. Какие-то дополнительные данные могу завтра предоставить. Со сборкой под винду проблем никаких, и работает как часы, с армом баг с либкой. p.s. линковщику дается либка созданная под арм разумеется, глюков при создании либки под арм небыло.
undefined reference to `Agent_Get' говорит о том, что при сборке Вам не хватает именно библиотеки, в которой есть реализация этой функции. Приложите заголовочный файл, где описана эта функция, Makefile и полный лог сборки под ARM.