Добавление к * концу * путей поиска библиотеки gnu ld - PullRequest
4 голосов
/ 20 августа 2011

Я знаю, как добавить к пути поиска библиотеки GNU ld, используя опцию -Ldir, и широко его использовать.Но насколько я могу судить по прочтению руководств gcc и ld , невозможно добавить к end списка путей поиска библиотек.,

Параметр -L добавляет в начало, после чего он ищет пути к системной библиотеке по умолчанию.Но я хочу добавить путь «смотрите здесь, если вы не можете найти его, где бы то ни было».Есть ли способ сделать это с ld?

Я могу представить себе решение hacky-crap, которое извлекает все стандартные библиотеки dir (используя -print-search-dirs) и добавляет их в список -L search dirsв том порядке, в котором я хочу, перед их подразумеваемыми дубликатами в качестве путей поиска по умолчанию ...

Но там должен быть лучшим способом ...

Ответы [ 2 ]

0 голосов
/ 12 сентября 2012

Файл / etc / ld.so.conf содержит общесистемный список путей к каталогам, в которых библиотеки ищутся во время компиляции, при этом учитывается разделенный новой строкой порядок записей такого файла.

После изменения этого файла вы должны запустить ldconfig (от имени root), чтобы новый параметр стал активным.

0 голосов
/ 20 февраля 2012

Я не думаю, что вы можете делать именно то, что вы хотите. Однако, что если вы заставите все символы в библиотеках быть слабыми с помощью следующего флага ld:

 -weak_library path_to_library
             This is the same as listing a file name path to a library on
             the link line except that it forces the library and all ref-
             erences to it to be marked as weak imports.

Таким образом, если другие библиотеки включены с более сильными символами, они переопределят символы в look-here-if-you-can't-find-it-anywhwere-else.so. Если в библиотеках, упомянутых в LD_LIBRARY_PATH, не определены более сильные символы, будут использоваться слабые символы в look-here-if-you-can't-find-it-anywhwere-else.so.

...