Не удается найти -l <nameOfTheLibrary>, даже после установки LD_LIBRARY_PATH - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь собрать OpenMVG и не могу устранить некоторые ошибки зависимости. Я нахожусь в среде анаконды и использую установленные Conda версии g ++ и некоторые библиотеки (у меня нет привилегий суперпользователя).

$ cmake --build . --target install
... (lots of output from seemingly successful steps) ...
[ 77%] Built target openMVG_sample_main_features_repeatability_dataset
[ 77%] Linking CXX executable ../../Linux-x86_64-RELEASE/openMVG_sample_features_affine
/home/user/anaconda3/envs/sfm/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -ljpeg
/home/user/anaconda3/envs/sfm/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lpng
/home/user/anaconda3/envs/sfm/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lz
/home/user/anaconda3/envs/sfm/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -ltiff
collect2: error: ld returned 1 exit status
gmake[2]: *** [Linux-x86_64-RELEASE/openMVG_sample_features_affine] Error 1
gmake[1]: *** [openMVG_Samples/features_affine_demo/CMakeFiles/openMVG_sample_features_affine.dir/all] Error 2
gmake: *** [all] Error 2

Но libjpeg, libpng и т. Д. Все /home/user/anaconda3/envs/sfm/lib/. Например:

(sfm) [openMVG]$ find /home/user/anaconda3/envs/sfm/ -name 'libjpeg*'
/home/user/anaconda3/envs/sfm/conda-meta/libjpeg-turbo-cos6-x86_64-1.2.1-h24432d5_0.json
/home/user/anaconda3/envs/sfm/lib/libjpeg.a
/home/user/anaconda3/envs/sfm/lib/libjpeg.so
...

Итак, я попробовал оба из следующих вариантов:

export LD_PRELOAD=/home/user/anaconda3/envs/sfm/lib/libjpeg.so

и

export LD_LIBRARY_PATH=/home/user/anaconda3/envs/sfm/lib/:/home/user/anaconda3/lib/:/usr/lib64/:/usr/lib/

до повторного запуска $ cmake --build . --target install, но получитетот же результат.

Мне кажется, что компилятору не удалось найти некоторые библиотеки. Поэтому я точно сказал, где искать, и даже попытался предварительно загрузить их, но он все равно не может их найти. Добавление путей к LD_LIBRARY_PATH было необходимо, чтобы зайти так далеко - так что, похоже, это сработало для других вещей. Просто не эта проблема. Как мне устранить неполадки здесь?

...