LINUX.ORG.RU

unreferenced symbol


0

0

блина, я туплю по-страшному...
помогите!
есть бинарик приплюснутый (собирается g++)
есть либа (нормальная - gcc)

либа собирается на ура. а бинарик валится, мол, референсы на либу не резолвятся.
нутром ведь чую - наступаю на тупую граблю и стыдно спрашивать... но вдруг у кого-то есть мЫсля..?

linux 2.4.20
gcc 3.2

PS
если глянуть objdump-ом, то в либе символы не манкируются (то есть как определены в хедере так и в бинарном коде либы). А в исполняемом бинарике (к которому линкуется либа) эти же символы манкируются всякой бородой.... почему????????

anonymous

есть something.h, something.cpp и main.cpp. компилим либу: g++ something.cpp -c; компилим бинарник: g++ something.cpp main.cpp -o main.

все.

p.s.: или я туплю ;)

elenath
()
Ответ на: комментарий от elenath

обьяви те функции, которые ты вызываешь из либы как extern "C"

grustnoe ★★
()
Ответ на: комментарий от elenath

гы, дык либа-то сишная! и собирается gcc, а бинарик плюснутый g++
и разрешилось (если кому-то интересно) так - в самом начале хедера либы (где функции декларируются) ставим

#ifdef __cplusplus
extern "C" {
#endif
bla-bla функции

#ifdef __cplusplus
}
#endif

спасибо всем за помощь!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.