Подтвердить что ты не робот

Путь библиотеки Linux Ubuntu

Как определить путь библиотеки Linux Ubuntu? То есть, как линкер знает, где можно захватить объектные файлы при связывании моей программы?

4b9b3361

Ответ 1

Пути файлов можно явно указывать при связывании с использованием параметра -L, а также переменной среды LD_LIBRARY_PATH.

Есть также некоторые пути, жестко закодированные в компоновщике, используя параметр -L. Вы можете увидеть их с помощью команды:

gcc -Xlinker -v

Ответ 2

Посмотрите /etc/ld.so.conf и файлы в каталоге /etc/ld.so.conf.d/ - там, где он установлен.

Ответ 3

Если это не стандартный путь (/lib, /usr/lib), вы можете указать местоположение с флагом компилятора. Для g++ it -L/some/path/lib. Если вы используете autotools, вы можете просто настроить с помощью LDFLAGS=-L/some/path/lib, если вам нужен конкретный путь. Если configure был правильно спроектирован для проекта, он должен иметь параметр --with-some-library=PATH, где вы также можете указать путь только для этой библиотеки.

Ответ 4

При связывании вам нужно указать флаг -L, чтобы указать, где находится библиотека. Во время выполнения динамический компоновщик использует пути, указанные в "/etc/ld.so.conf", "/etc/ld.so.conf.d/*" и значение LD_LIBRARY_PATH.

Ответ 5

"sudo ldconfig" обновляет системный кеш, если вы только что установили что-то новое.