LINUX.ORG.RU

undefined reference проблема


0

0

может уже просто поздно и я устал? но сам я больше идей не имею

target_1 my_lib.so
собирается так
g++ -c -o my_lib.o my_lib.cpp -Imy_lib/inc -g
gcc -shared -o my_lib.so my_lib.o -L. -lpthread

все пучком

tagret_2 пускач
# должен брать одну функцию из библиотеки 
# брать в смысле ссылаться (без dlopen  и пр.)
g++ -c -o exec.o exec.cpp -Imy_lib/inc -g
g++ -o exec exec.o my_lib.so -L.

ругается на udefined reference в main
а в main я вызываю библиотечную функцию my_foo которая обюъявлена так
//lib.h
extern "C" int vla_bla(int arg);

//my_lib.cpp
#include "lib.h"
int vla_bla(int arg)
{return 0;}

смотрю objdump -t my_lib.so
а ьам имя декорировано всякой куйней... 
вопрос: 
1. почему имя функции декорированно (не смотря на extern "C")?
2. как сделать, чтоб работало? (простите за моветон)

чего я уже попробовал - разные объвления - результат одинаковый
у меня gcc 3.2 (linux 2.4.18 RH8.0)


Проигнорируй пост SadStork-а и не забывай указывать extern "C" в .cpp-файле.

sergio_nsk
()

утро вечера мудренее - верно говорят!
все заработало - спасибо

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