Я знаю
export LD_LIBRARY_PATH=xxxxx
позволит ядру искать целевую библиотеку по этому пути.
но зачем назначать его как':'
export LD_LIBRARY_PATH=:
Что за функция? Она работает, если .so в текущем пути.
Кстати, когда мы разделяем пути, разве мы не должны использовать ';'?
бывший:
export LD_LIBRARY_PATH=foo1;foo2
решение1
LD_LIBRARY_PATH используется динамическим компоновщиком, а не ядром. Имя динамического компоновщика может быть разным, но это что-то вроде /lib64/ld-linux-x86-64.so.2.
Это задокументировано man ld.so
. В моей системе это говорит
LD_LIBRARY_PATH
A list of directories in which to search for ELF libraries at execution
time. The items in the list are separated by either colons or
semicolons, and there is no support for escaping either separator.
Использование двоеточия имеет небольшое преимущество, так как не требует кавычек, так как ;
это специальный символ для оболочки. Это также согласуется с использованием двоеточия в значении переменной PATH.
Что касается причин LD_LIBRARY_PATH=:
, я предлагаю вам приобрести лучшую книгу или руководство.