Дерзкий: совместно использованное Повышение освобождает, не содержат символов

Я должен связаться с частью общей библиотеки Повышения (.so) файлы. Я установил повышение путем выполнения

sudo apt-get install libboost-all-dev

Заголовочные файлы и статические библиотеки установлены правильно. Общие библиотеки также установлены однако, они не содержат символов.

$ nm /usr/lib/x86_64-linux-gnu/libboost_filesystem.so
nm: /usr/lib/x86_64-linux-gnu/libboost_filesystem.so: no symbols

Как это возможно и как я могу зафиксировать его? Я понимаю, что это - неопределенная проблема, но я попробовал apt-get clean и полностью удаляя и производя чистку всего повышения debian пакеты и переустанавливая и я всегда получаю тот же результат. Компиляция Повышения из источника и установка отдельной версии не идеальны.

4
задан 10 April 2015 в 20:54

2 ответа

Большинство общих библиотек, установленных из репозиториев Ubuntu, не содержит символы. Пакеты обычно создаются с отладочными символами, которые тогда разделяются и помещаются в отдельно устанавливаемые пакеты для использования с gdb или другие отладчики.

, Если Вы хотите видеть символы в общей библиотеке динамическая таблица символов , которые являются общедоступными символами, которые могут быть связаны с, используйте nm -D вместо всего nm.

3
ответ дан 1 December 2019 в 10:06

У меня была та же самая проблема с другой библиотекой (libcudart.so). Я решил его пользующийся статическим '.a' библиотека.

, Что я сделал:

$ find /usr/local/cuda-7.0 -type f -name libcudart\*
directory/libcuda_static.a
$ compiler -Ldirectory -lcudart_static

я надеюсь, что это помогает кому-то

0
ответ дан 1 December 2019 в 10:06

Другие вопросы по тегам:

Похожие вопросы: