Подключение библиотек. Всё равно undefined reference. linux
От: _A_n_d_r_e_y_  
Дата: 19.10.09 09:21
Оценка:
День добрый. Происходит странная вещь, которой я понять никак не могу.
Есть приложение (main.cpp), которое должно пользоваться ф-ии из liba.so и libb.so, при этом liba.so сама пользуется ф-ми из libb.so.
Когда пытаюсь компилить, то выскакивает ошибка
main.cpp undefined reference `"funk1"
main.cpp undefined reference `"funk2"
funk1 находятся в liba.so, funk2 находятся в libb.so

подключаю liba.so при компиляции: -L /path/ -la
вылетают ошибки :
main.cpp undefined reference `"funk2"
liba.so undefined reference ' "funk2"
liba.so undefined reference ' "funk3"
funk2 и funk3 находятся в libb.so

подключаю libb.so при компиляции: -L /path2/ -lb
ошибки:
main.cpp undefined reference `"funk2"

В чём может быть причина того, что компилятор прекратил выдавать ошибки для liba.so(увидел где взять funk2 и funk3), а для main.cpp нет?
Re: Подключение библиотек. Всё равно undefined reference. li
От: ДимДимыч Украина http://klug.org.ua
Дата: 19.10.09 09:22
Оценка:
Здравствуйте, _A_n_d_r_e_y_, Вы писали:

_A_>В чём может быть причина того, что компилятор прекратил выдавать ошибки для liba.so(увидел где взять funk2 и funk3), а для main.cpp нет?


В порядке следования аргументов линкеру?
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: Подключение библиотек. Всё равно undefined reference.
От: _A_n_d_r_e_y_  
Дата: 19.10.09 09:57
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>В порядке следования аргументов линкеру?


пробывал по разному. ничего не меняется.
Сейчас сделал так:
создаю полностью чистый main.cpp, вставляю в него 1 вызов ф-ии из liba
подключаю liba компилю, получаю:
liba.so undefined reference ' "funk2"
liba.so undefined reference ' "funk3"
подключаю libb, компилю — всё нормально собирается и работает.

теперь создаю полностью чистый main.cpp, вставляю в него 1 вызов ф-ии из libb и получаю undefined reference что бы я не подключал.
Re[3]: Подключение библиотек. Всё равно undefined reference.
От: rising_edge  
Дата: 19.10.09 11:06
Оценка:
Здравствуйте, _A_n_d_r_e_y_, Вы писали:
_A_>Здравствуйте, ДимДимыч, Вы писали:
ДД>>В порядке следования аргументов линкеру?
_A_>пробывал по разному. ничего не меняется.

Почитайте по --as-needed. Например, здесь
Re[4]: Подключение библиотек. Всё равно undefined reference.
От: _A_n_d_r_e_y_  
Дата: 20.10.09 04:35
Оценка:
Проблема решена, извините за беспокойство.
extern "C"{lubb.h}надо было. Пора отдыхать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.