Clang linker не просматривает LD_LIBRARY_PATH

Я пытаюсь собрать и связать C ++, cmake-based проект с clang (3.0). Этот проект связан с несколькими библиотеками, которые установлены в пользовательском каталоге / my / dir /. Этот каталог включен в переменные окружения LD_LIBRARY_PATH и LIBRARY_PATH. Проект строит и связывает хорошо с g ++.

Команда link, сгенерированная и выполненная cmake, выглядит следующим образом:

/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib

Затем ld жалуется следующим сообщением:

/usr/bin/ld: cannot find -lmylib

Приведенная выше команда ссылки работает нормально, когда я добавляю ее вручную -L/my/dir/, Есть ли способ ссылки без указания -L флаг?

7

Решение

$LD_LIBRARY_PATH переменная окружения (и ее различные альтернативы на других платформах на основе UNIX) используется в время выполнения, не время ссылки, найти библиотеки.

С помощью -L это правильный подход, и его нельзя избежать.

Примечание: лучший подход в Linux (вы не указываете свою платформу, так что я предполагаю) — правильно настроить файл в /etc/ld.so.conf.d/ и избегать использования $LD_LIBRARY_PATH в целом.

7

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

Других решений пока нет …