ldd — c ++ разделяемые объектные зависимости

после компиляции .so команда ldd возвращает 3 неизвестные зависимости.

libboost_regex-gcc41-mt-1_35.so.1.35.0 => not found
libsqlapi.so => not found
libsqlapiu.so => not found

Хотя они указаны в make-файле и присутствуют на компьютере (RH 64 бит).
LD_LIBRARY_PATH не установлен (нужно решение без изменения)

libMakeMeHappy_so_LDADD = -L/usr/local/lib64/ -lboost_regex-gcc41-mt -lsqlapi -lsqlapiu

Любой комментарий, почему и как это предотвратить?

0

Решение

Во-первых, вам нужно выяснить, где эти недостающие библиотеки находятся на вашем компьютере. Они могут быть в /usr/local/lib64/

Затем вы можете выбрать один из этих 3 вариантов:

  1. Установить LD_LIBRARY_PATH переменная env для указания на /usr/local/lib64/

  2. Обновите глобальный путь к библиотеке:

    • добавлять /usr/local/lib64/ в /etc/ld.so.conf
    • Бежать ldconfig
  3. добавлять /usr/local/lib64/ как путь к вашей общей библиотеке (или к исполняемым файлам, использующим вашу библиотеку)

    • Добавьте флаг компоновщика -Wl,-rpath,/usr/local/lib64/ при связывании
      общая библиотека или исполняемый файл.
1

Другие решения


По вопросам рекламы [email protected]