|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
Распределение функций по библиотекам09.11.2019, 11:12. Показов 3580. Ответов 23
Всем привет!
Работаю сейчас в CodeBlocks 16 под Ubuntu 18.04. Частенько возникает задача определения библиотеки so.x.y, где находится определение функции. Пока что решаю ее тупым перебором. Выбираю библиотеку, имя которой более менее подходит, исходя из имени хэдера. Вывожу список экспортируемых этой библиотекой функций с помощью nm. Ищу нужное mangled name в списке. Однако вчера не смог найти библиотеку, где определена функция X509_free@@OPCUA_1.0.0. Соответственно, скомпоновать проект не удается пока. Может есть какой-то иной, более "научный" способ решить эту задачу? Может есть ресурсы, где по имени функции можно найти библиотеку? Заранее спасибо!
0
|
|
| 09.11.2019, 11:12 | |
|
Ответы с готовыми решениями:
23
подключаемые библиотекам в брутфорсе(перебор по словарю) в win xp Литература по библиотекам |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 09.11.2019, 13:03 | |
|
1
|
|
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
| 09.11.2019, 14:32 [ТС] | |
|
Да, это я уже понял, Единственная ремарка, что so это скрипт компоновщика, а не библиотека, насколько я знаю.
Но тут больше вопрос общего плана. Как быстро определить, где именно содержится реализация функции? Потому как копаться так с каждой функцией... это тот еще гемор ((
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||||||||||||
| 09.11.2019, 16:14 | |||||||||||||
1
|
|||||||||||||
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|||
| 09.11.2019, 16:54 [ТС] | |||
|
Добавлено через 11 минут Еще раз подробнее опишу ситуацию. Я делаю OPCUA-клиент под Убунту в CodeBlocks. При сборке вылезла unresolved reference на функцию X509_free. Путем загугливания я нашел, в какой библиотеке находится ее реализация. Потом вылезла unresolved reference на функцию sk_free. Тоже нашел библиотеку через доктора Гугла. Но это же ведь не дело так искать каждую функцию! Отсюда и вопрос. Может есть где ресурсы с описанием содержимого библиотек? Или какой-то хитрый способ...
1
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 09.11.2019, 18:01 | ||
|
И вот там почти всегда присутствует описание как правильно ее линковать. Какого-то централизованного ресурса нет. Как вариант, можно написать скрипт, который пройдет по всем разделяемым библиотекам в системе и поищет в них требуемую функцию. Однако это не спасет от ситуации, когда библиотеки физически нет в системе и ее надо поставить. Поэтому только вдумчивое изучение всей документации, относящейся к библиотекам, которые вы планируете использовать в проекте.
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 09.11.2019, 18:07 | |
|
1
|
|
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|||
| 09.11.2019, 19:17 [ТС] | |||
|
Добавлено через 2 минуты В моем случае проект в Виртуал Боксе под виндой отлично скомпоновался, а в CodeBlocks под Убунтой начались проблемы...
0
|
|||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||
| 09.11.2019, 19:39 | |||
|
Если же вы ну никак не можете определить причину, то уже можно поискать через nm или в google. Единого репозитория, который бы в соответствии с версиями и кросс-зависимостями выдавал вам информацию по доступным функциям - нет. -D. Он просто выводит динамические символы.
0
|
|||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
||
| 09.11.2019, 20:42 | ||
|
Добавлено через 8 минут PS. Как раз в Венде нужно вручную скачивать и располагать по каталогам библиотеки, разбираться с зоопарком этих библиотек и их версий, прописывать их расположение в параметры системы сборки и т.д. В Линуксе это уже сделано за вас. Достаточно указать системе сборки через pkg-config, что вы используете openssl. Прще этого - только система модулей, которую в C++ вот уже лет 10 планируют ввети, но воз и ныне там.
0
|
||
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|||
| 09.11.2019, 22:03 [ТС] | |||
|
0
|
|||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||
| 09.11.2019, 22:36 | |||
|
1) библиотека openssl установлена из пакетов. 2) установлен pkg-config то достаточно в опции линкера добавить 'pkg-config --libs openssl' (одинарные ковычки обязательны) Добавлено через 21 минуту PS.
1
|
|||
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
| 09.11.2019, 22:39 [ТС] | |
|
Дело не в openssl. Меня интересовала только возможность быстрого поиска библиотек, содержащих нужную функцию.
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,388
|
|||||||||||||||||||||
| 10.11.2019, 11:43 | |||||||||||||||||||||
|
В я для этого использую небольшой скрипт, он у меня в ~/bin, а запускать его надо в каталоге,
где предположительно находится библиотека с искомой функцией с именем этой функции, как параметром. Например, для поиска библиотеки с функцией sin() надо в /lib/x86_64-linux-gnu ввести команду
1
|
|||||||||||||||||||||
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
| 10.11.2019, 13:11 [ТС] | |
|
Вот это уже интересненько.... Надо попробовать.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|
| 10.11.2019, 16:19 | |
|
0
|
|
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
| 10.11.2019, 16:36 [ТС] | |
|
Вот жаль, что компоновщики не сообщают, в какой библиотеке эта функция расположена. Понимаю, что библиотек много всяких, но хотя бы для стандартных было бы неплохо...
А так, по-сути, процесс компоновки не изменился со времен MS-DOS, когда нам все приходилось прописывать ручками. Но это из риторического...
0
|
|
|
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,388
|
|
| 10.11.2019, 17:30 | |
|
jugu, в справке на функцию может быть указано, какую библиотеку надо линковать,
например, в "man sin" сказано "-lm", т.е. искать и не надо.
0
|
|
|
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
| 10.11.2019, 17:46 [ТС] | |
|
0
|
|
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||||||||||||||||
| 10.11.2019, 21:19 | |||||||||||||||||
|
Алгоритм примерно такой (на примере той же X509_free). 1) В man X509_free читаем: #include <openssl/x509.h> Из этого понятно, что функция относится к одной из либ проекта openssl 2) Проверяем, есть ли информация о openssl в локальной базе pkg-config
Смотрим опции копоновщика для либ
0
|
|||||||||||||||||
| 10.11.2019, 21:19 | |
|
Помогаю со студенческими работами здесь
20
Документация к библиотекам Путь к библиотекам Какими библиотекам пользуетесь? Справочник по стандартным библиотекам c++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|