Для удобства я добавил соответствующие справочники ниже.Я не понимаю -Wl, -rpath -Wl,
My (не) понимания первых: Если мне нужно отделить варианты с ,
, что означает, что второй -Wl
не другой вариант, потому что речь идет, прежде чем ,
, что означает, что это аргумент опции -rpath
.
Я не понимаю, как -rpath
может иметь аргумент -Wl,.
!
Что бы иметь смысл в моем уме был бы это:
-Wl,-rpath .
Это должно вызывать -rpath опции компоновщика с текущим аргументом каталога.
человек GCC:
-Wl, вариант
параметр Pass в качестве опции к линкера. Если опция содержит запятые, она разделена на несколько опций в запятой . Вы можете использовать этот синтаксис для передать аргумент опции. Для пример,
-Wl,-Map,output.map
проходит-Map output.map
к компоновщику. При использовании с помощью компоновщика GNU вы также можете получить с таким же эффектом с `-Wl, -Map = output.map '.
человек л.д.:
-rpath = каталог
Добавить каталог в выполнения пути поиска библиотек. Это , используемый при связывании исполняемого файла ELF с общими объектами. Все аргументы -rpath конкатенируются и передаются в компоновщик времени выполнения, который использует их для поиска общих объектов во время выполнения. Параметр -rpath также используется, когда размещение общих объектов, которые являются , необходимые для общих объектов явно , включенных в ссылку;
О, я понимаю, что нет никакой дискриминации между опцией или аргументом при передаче материала компоновщику, это просто строка. Итак, вторая -Wl избыточна! Спасибо :) – Blub
@Blub: Это не избыточно! Это альтернативная форма, вы * или * говорите '-Wl, -rpath, .' * или * вы говорите' -Wl, -rpath -Wl, .'. Точно одно из двух, вы ничего не можете опустить. –