Я пытаюсь построить общую библиотеку, которая зависит от другой общей библиотеки, от которой я не контролирую. Вот как я его строит: < /p>
g++ -fPIC -Wall -Wextra -O2 -g -fpermissive -Wl,--no-allow-shlib-undefined -Wl,--no-undefined \
-I$JAVA_HOME/include -I$JAVA_HOME/include/linux -I/opt/softkinetic/DepthSenseSDK/include \
-L/opt/softkinetic/DepthSenseSDK/lib \
-lDepthSense -lDepthSensePlugins -lturbojpeg -c -o NativeDs325.o \
NativeDs325.cpp
g++ -shared -o libds325.so NativeDs325.o
< /code>
Шаг сборки идет нормально, но когда я загружаю свою библиотеку, он бросает неопределенную ошибку символа < /code>. Когда я смотрю в библиотеки, вот что я нашел < /p>
$ldd -d libds325.so
linux-vdso.so.1 => (0x00007fff94bfe000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f727167d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7271467000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f72710a6000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7270daa000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7271ba5000)
undefined symbol: _ZTIN10DepthSense9ExceptionE (./libds325.so)
undefined symbol: _ZTIN10DepthSense16EventHandlerBaseE (./libds325.so)
undefined symbol: _ZN10DepthSense7ContextD1Ev (./libds325.so)
undefined symbol: _ZN10DepthSense9DepthNodeD1Ev (./libds325.so)
< /code>
И когда я смотрю в библиотеку, я зависим и от которой у меня нет управления: < /p>
$nm -D libds325.so | grep _ZTIN10DepthSense9ExceptionE
U _ZTIN10DepthSense9ExceptionE
$nm -D libds325.so | grep _ZTIN10DepthSense16EventHandlerBaseE
U _ZTIN10DepthSense16EventHandlerBaseE
< /code>
Таким образом, эти символы не определены в библиотеках, которые у меня есть. Есть ли что -нибудь, что я могу сделать, чтобы решить свою проблему, или я полностью зависим от поставщика библиотеки? Что -то мне не хватает полностью? < /P>
Заранее < /p>
Подробнее здесь: https://stackoverflow.com/questions/235 ... ned-symbol
В зависимости от общей библиотеки, которая имеет неопределенный символ ⇐ C++
Программы на C++. Форум разработчиков
1739476426
Anonymous
Я пытаюсь построить общую библиотеку, которая зависит от другой общей библиотеки, от которой я не контролирую. Вот как я его строит: < /p>
g++ -fPIC -Wall -Wextra -O2 -g -fpermissive -Wl,--no-allow-shlib-undefined -Wl,--no-undefined \
-I$JAVA_HOME/include -I$JAVA_HOME/include/linux -I/opt/softkinetic/DepthSenseSDK/include \
-L/opt/softkinetic/DepthSenseSDK/lib \
-lDepthSense -lDepthSensePlugins -lturbojpeg -c -o NativeDs325.o \
NativeDs325.cpp
g++ -shared -o libds325.so NativeDs325.o
< /code>
Шаг сборки идет нормально, но когда я загружаю свою библиотеку, он бросает неопределенную ошибку символа < /code>. Когда я смотрю в библиотеки, вот что я нашел < /p>
$ldd -d libds325.so
linux-vdso.so.1 => (0x00007fff94bfe000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f727167d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7271467000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f72710a6000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7270daa000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7271ba5000)
undefined symbol: _ZTIN10DepthSense9ExceptionE (./libds325.so)
undefined symbol: _ZTIN10DepthSense16EventHandlerBaseE (./libds325.so)
undefined symbol: _ZN10DepthSense7ContextD1Ev (./libds325.so)
undefined symbol: _ZN10DepthSense9DepthNodeD1Ev (./libds325.so)
< /code>
И когда я смотрю в библиотеку, я зависим и от которой у меня нет управления: < /p>
$nm -D libds325.so | grep _ZTIN10DepthSense9ExceptionE
U _ZTIN10DepthSense9ExceptionE
$nm -D libds325.so | grep _ZTIN10DepthSense16EventHandlerBaseE
U _ZTIN10DepthSense16EventHandlerBaseE
< /code>
Таким образом, эти символы не определены в библиотеках, которые у меня есть. Есть ли что -нибудь, что я могу сделать, чтобы решить свою проблему, или я полностью зависим от поставщика библиотеки? Что -то мне не хватает полностью? < /P>
Заранее < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/23570050/depending-on-a-shared-library-that-has-an-undefined-symbol[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия