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

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

02.11.2013, 14:55. Показов 5570. Ответов 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 / 2064 / 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 / 2064 / 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 / 2064 / 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 / 2064 / 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 / 2064 / 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 / 2064 / 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 / 2064 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru