Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83

Не видит содержимое динамической библиотеки

02.11.2013, 14:55. Показов 5487. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
(clang, linux)
Делаю так:
1. Компиляция объектов
2. Сборка в динамическу библиотеку
3. Расположение её в /usr/local/lib (чтобы не засорять /usr/)
Затем компилирую тест:
c++ -l<название без lib и .so> -Iinclude-core/ src-tests/test--core.cpp -o bin/test--core -v
на выходе много undefined reference на всё, что вызывается в тесте

PS под g++ также
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2013, 14:55
Ответы с готовыми решениями:

Не видит <windows.h> в заголовочном файле динамической библиотеки
Приветствую. Вопрос в теме.

Вызов функции одной динамической библиотеки из другой динамической библиотеки
Добрый день! Помогите пожалуйста разобраться со следующим вопросом. Возможно ли из одной библиотеки передать параметры для...

Отладка динамической библиотеки
Скомпилировал я динамическую библиотеку, присоединил к проекту. Папка с исходниками библиотеки лежит в отдельной папке (не в папке проекта,...

28
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.11.2013, 14:58
После сборки динамической должна быть еще и библиотека импорта .a
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 15:06  [ТС]
Цитата Сообщение от castaway Посмотреть сообщение
После сборки динамической должна быть еще и библиотека импорта .a
Я хочу использовать именно динамическую линковку, а не статическую.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
02.11.2013, 15:07
Цитата Сообщение от DrMGC Посмотреть сообщение
Я хочу использовать именно динамическую линковку, а не статическую.
Я не говорил про статическую библиотеку.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 15:10
-L/usr/local/lib добавить пробовали?
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 15:11  [ТС]
castaway, но обычно расширение .a используют для статический библиотек.
На выходе только объектные файлы (они все в obj/) и .so библиотека
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 15:12
И, да, есть та же проблема при ручной сборке
В IDE(Eclipse, NetBeans) все собирается нормально :/
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 15:15  [ТС]
Cra3y, да

Добавлено через 2 минуты
Цитата Сообщение от Cra3y Посмотреть сообщение
И, да, есть та же проблема при ручной сборке
В IDE(Eclipse, NetBeans) все собирается нормально :/
Предлагаете перенести проект в IDE?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 15:30
Попробуйте, но мне всеравно интересно, в чем проблема...

Добавлено через 7 минут
любой простой код вроде
C++
1
2
3
4
5
6
7
#include <some_notstd_lib>
 
type function(args) {
///...
    var = func_from_some_notstd_lib();
///...
}
при сборке
g++ -lsome_notstd_lib -o file file.cpp

выбивает с ошибкой линковки, если собирать из консоли
добавляю тот же файл в пустой проект в IDE и оно собирается

Что я делаю не так вот в чем вопрос...

Добавлено через 4 минуты
Ось XUbuntu 13.10 amd64
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 15:42  [ТС]
Cra3y, я clang'ом пользуюсь.
PS может посмотреть ключи в сгенерированном Makefile?
PPS какая у вас IDE?

Добавлено через 4 минуты
PPPS У меня Debian 7.2 i386
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 16:03
проект для NetBeans C++ sdlapp.tar.bz2.zip
почти тоже самое для Eclipse CDT sdlapp-e.tar.bz2.zip

если собирать вручную, то ругается на функции

удалите .zip из расширения, форум не хочет tar.bz2
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 16:12
проект под Eclipse нерабочий, удалил лишние файлы

вернее нужное удалил
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 18:19  [ТС]
Cra3y, судя по синтаксису Makefile на m4
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 18:32
Bash
1
2
m4 --version
m4 (GNU M4) 1.4.16
если это поможет хоть чем

Добавлено через 3 минуты
лог кмпиляции из NetBeans 7.4
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Вход в каталог `/home/max/src/sdltests/sdlapp'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/sdlapp
make[2]: Вход в каталог `/home/max/src/sdltests/sdlapp'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/Application.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/Application.o.d -o build/Debug/GNU-Linux-x86/Application.o Application.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/EventDispatcher.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/EventDispatcher.o.d -o build/Debug/GNU-Linux-x86/EventDispatcher.o EventDispatcher.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/SimpleWindow.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/SimpleWindow.o.d -o build/Debug/GNU-Linux-x86/SimpleWindow.o SimpleWindow.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++     -o dist/Debug/GNU-Linux-x86/sdlapp build/Debug/GNU-Linux-x86/Application.o build/Debug/GNU-Linux-x86/EventDispatcher.o build/Debug/GNU-Linux-x86/SimpleWindow.o build/Debug/GNU-Linux-x86/main.o -dynamic `sdl2-config --libs`  
make[2]: Выход из каталога `/home/max/src/sdltests/sdlapp'
make[1]: Выход из каталога `/home/max/src/sdltests/sdlapp'
 
 
СОБРАТЬ SUCCESSFUL (общее время: 2s)
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 19:12  [ТС]
Цитата Сообщение от Cra3y Посмотреть сообщение
лог кмпиляции из NetBeans 7.4
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Вход в каталог `/home/max/src/sdltests/sdlapp'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/sdlapp
make[2]: Вход в каталог `/home/max/src/sdltests/sdlapp'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/Application.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/Application.o.d -o build/Debug/GNU-Linux-x86/Application.o Application.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/EventDispatcher.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/EventDispatcher.o.d -o build/Debug/GNU-Linux-x86/EventDispatcher.o EventDispatcher.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/SimpleWindow.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/SimpleWindow.o.d -o build/Debug/GNU-Linux-x86/SimpleWindow.o SimpleWindow.cpp
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++    -c -g -std=c++98 -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++     -o dist/Debug/GNU-Linux-x86/sdlapp build/Debug/GNU-Linux-x86/Application.o build/Debug/GNU-Linux-x86/EventDispatcher.o build/Debug/GNU-Linux-x86/SimpleWindow.o build/Debug/GNU-Linux-x86/main.o -dynamic `sdl2-config --libs`  
make[2]: Выход из каталога `/home/max/src/sdltests/sdlapp'
make[1]: Выход из каталога `/home/max/src/sdltests/sdlapp'
 
 
СОБРАТЬ SUCCESSFUL (общее время: 2s)
это лог сборки либы или программы?
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
02.11.2013, 19:15
Выхлоп nm на либу и выхлоп nm на любой из объектников, использующих функции этой либу, в студию.
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2062 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
02.11.2013, 19:19
тестовой программы

Добавлено через 3 минуты
OhMyGodSoLong,
Bash
1
2
3
4
5
6
7
8
max@notebook:~/src/tests$ g++ -c test.cpp
max@notebook:~/src/tests$ nm test.
test.cpp  test.d    test.o    
max@notebook:~/src/tests$ nm test.o
                 U dlclose
                 U dlopen
                 U dlsym
0000000000000000 T main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
max@notebook:~/src/tests$ cat test.cpp
#include <dlfcn.h>
 
int main() {
    void* lib;
    void* sym;
    lib = dlopen("",0);
    if(lib != (void*)0) {
        sym = dlsym(lib,"");
        dlclose(lib);
    }
    return 0;
}
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 19:20  [ТС]
OhMyGodSoLong,
Либа:
000014ec a _DYNAMIC
000015d8 a _GLOBAL_OFFSET_TABLE_
w _Jv_RegisterClasses
000014dc d __CTOR_END__
000014d8 d __CTOR_LIST__
000014e4 d __DTOR_END__
000014e0 d __DTOR_LIST__
000004d4 r __FRAME_END__
000014e8 d __JCR_END__
000014e8 d __JCR_LIST__
000015f0 A __bss_start
w __cxa_finalize@@GLIBC_2.1.3
00000430 t __do_global_ctors_aux
00000370 t __do_global_dtors_aux
000015ec d __dso_handle
w __gmon_start__
00000427 t __i686.get_pc_thunk.bx
000015f0 A _edata
000015f8 A _end
00000468 T _fini
0000030c T _init
000015f0 b completed.5514
000015f4 b dtor_idx.5516
000003f0 t frame_dummy
Объектный файл (либы):
U _GLOBAL_OFFSET_TABLE_
00000000 W _ZN3RFw6ObjectC2Ev
U _ZN3RFw6ObjectD2Ev
U _ZN3RFw9Exception7onThrowEv
00000000 T _ZN3RFw9ExceptionC1EPKcPKS0_
00000000 T _ZN3RFw9ExceptionC2EPKcPKS0_
00000070 T _ZN3RFw9ExceptionD0Ev
000000b0 T _ZN3RFw9ExceptionD1Ev
000000b0 T _ZN3RFw9ExceptionD2Ev
000000e0 T _ZNK3RFw9Exception10getMessageEv
000000f0 T _ZNK3RFw9Exception17getInnerExceptionEv
U _ZTIN3RFw6ObjectE
00000020 D _ZTIN3RFw9ExceptionE
00000000 R _ZTSN3RFw9ExceptionE
U _ZTVN10__cxxabiv121__vmi_class_type_info E
U _ZTVN3RFw6ObjectE
00000000 D _ZTVN3RFw9ExceptionE
U _ZdlPv
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
02.11.2013, 19:20
Не, лол, интерес представляет выдача для того, что не собирается.
0
 Аватар для DrMGC
0 / 0 / 1
Регистрация: 19.04.2013
Сообщений: 83
02.11.2013, 19:23  [ТС]
OhMyGodSoLong,
/tmp/test--core-fEPzQC.o: In function `main':
00000000 r GCC_except_table0
0000004c r GCC_except_table5
U _Unwind_Resume
U _ZN3RFw5ArrayIcEC2Ei
U _ZN3RFw5ArrayIcED2Ev
00000000 W _ZN3RFw6StringC1Ev
00000000 W _ZN3RFw6StringC2Ev
00000000 W _ZN3RFw6StringD0Ev
00000000 W _ZN3RFw6StringD1Ev
00000000 W _ZN3RFw6StringD2Ev
U _ZN3RFw6StringaSEPKc
U _ZNK3RFw6String9toCharArrEv
U _ZSt9terminatev
00000000 V _ZTIN3RFw5ArrayIcEE
U _ZTIN3RFw6ObjectE
00000000 V _ZTIN3RFw6StringE
00000000 V _ZTSN3RFw5ArrayIcEE
00000000 V _ZTSN3RFw6StringE
U _ZTVN10__cxxabiv120__si_class_type_infoE
00000000 V _ZTVN3RFw6StringE
U _ZdlPv
U __gxx_personality_v0
00000000 T main
U printf
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2013, 19:23
Помогаю со студенческими работами здесь

Внедрение динамической библиотеки
#include &lt;windows.h&gt; #include &lt;tlhelp32.h&gt; LRESULT CALLBACK WindowProcedure (HWND,UINT,WPARAM,LPARAM); char szClassName = &quot;0&quot;; ...

Подключение динамической библиотеки
Всем доброго времени суток. Передо-мной стоит задача подключения собственно написанной библиотеки. И дело в том что я понятие не имею как...

Сборка динамической библиотеки
Пытаюсь собрать динамическую библиотеку для использования её из питона. #include &lt;iostream&gt; #include &lt;string&gt; ...

Создание динамической библиотеки
есть makefile root_include_dir :=include root_source_dir:=src source_subdirs :=./cRand ./fft ./rs compile_flags :=-Wall -pipe ...

Подключение динамической библиотеки функцией dl()
Доброго времени суток! Юзаю php версии 5.3.5. С помощью компонента php4delphi в Delphi 7 сделал простую dll и хочу загрузить её в php....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru