У меня есть две библиотеки liba.so и libb.so, где libb.so связывает liba.so. Библиотеки собираются успешно, но когда я делаю nm libb.so, функции библиотеки liba.so отображаются как U(неопределенный символ). Как это исправить, превратив U в T .
lib_a.cpp
extern "C" void printa() {
}
build command
gcc -shared -fPIC -o liba.so ./lib_a.cpp
lib_b.cpp
extern "C" void printa();
void printb() {
printa();
}
build command
gcc -shared -fPIC -o libb.so ./lib_b.cpp -L../lib_a -la
nm liba.so
0000000000001104 T printa
nm libb.so
U printa
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-libraray
Мобильная версия