В моей переменной среды LIBRARY_PATH
есть пользовательский каталог: /cs/public/lib/pkg/opencv/lib
.
Но, когда я использую g++ --print-search-dirs
, я получаю это вместо:
libraries: =
/cs/public/lib/pkg/opencv/lib/x86_64-suse-linux/4.6/:
/cs/public/lib/pkg/opencv/lib/../lib64/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/x86_64-suse-linux/4.6/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/../lib64/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../x86_64-suse-linux/4.6/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib64/:
/lib/x86_64-suse-linux/4.6/:
/lib/../lib64/:
/usr/lib/x86_64-suse-linux/4.6/:
/usr/lib/../lib64/:
/cs/public/lib/pkg/opencv/lib/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/:
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../:
/lib/:
/usr/lib/
Почему g++ просматривает эти альтернативы и целую кучу других системных местоположений до того, что я явно указываю в переменной LIBRARY_PATH
, и где это документировано?
Я бы понял, были ли поиск по умолчанию по умолчанию в LIBRARY_PATH и LIBRARY_PATH/../lib64 и т.д., но g++ помещает LIBRARY_PATH/../lib64, затем в системные пути, затем в LIBRARY_PATH. Где зарегистрировано это упорядочение?
Моя версия g++ g++ (SUSE Linux) 4.6.2
Моя ОС openSUSE 12.1 (x86_64)