Для удобства я добавил соответствующие справочники ниже.
Сначала мое (неправильное) понимание: если мне нужно разделить параметры с ,, это означает, что второй -Wl не является другой опцией, потому что он предшествует ,, что означает, что это аргумент для -rpath.
Я не понимаю, как -rpath может иметь аргумент -Wl,.!
Что было бы в моем сознании, было бы так:
-Wl,-rpath .
Это должно вызывать параметр -rpath linker с текущим аргументом каталога.
man gcc:
-Wl, опция
Передать опцию в качестве опции для линкер. Если опция содержит запятые, это разделяется на несколько вариантов на запятые. Вы можете использовать этот синтаксис для передайте аргумент опции. Для пример,
-Wl,-Map,output.mapпроходит-Map output.mapк компоновщику. когда используя GNU-компоновщик, вы также можете получить тот же эффект с `-Wl, -Map = output.map".
man ld:
-rpath = dir
Добавить каталог в путь поиска библиотеки времени выполнения. Это используется при связывании исполняемого файла ELF с общими объектами. Все -rpath аргументы конкатенируются и передаются к компоновщику времени выполнения, который использует их для нахождения общих объектов во время выполнения. Опция -rpath также используется, когда размещение общих объектов, которые необходимо для общих объектов явно включен в ссылку;