Да, порядок -L
опций имеет значение - точно так же как опции -l
и -I
.
От man ld
-Lsearchdir
- library-path = searchdir
Добавить path searchdir в список путей, по которым ld будет искать архивные библиотеки и сценарии управления ld.Вы можете использовать эту опцию любое количество раз.Каталоги ищутся в том порядке, в котором они указаны в командной строке.Каталоги, указанные в командной строке, ищутся перед каталогами по умолчанию.Все параметры -L применяются ко всем параметрам -l независимо от порядка, в котором они отображаются.
Документация GCC и более конкретно Параметры связывания будет полезно для вас
Редактировать
Извините, действительно, я пропустил, чтобы проверить ссылку, которую вы дали."man ld" можно просто написать в консоли.
Edit2
Я сделал простой тест, выставив параметры -l
перед -L
, и он не показывает разницы по сравнению с -L
до -l
Итак, отвечая на ваш второй вопрос, эта
gcc -lm hello.c -Lx
равна этой
gcc -Lx -lm hello.c
libm ищется первым в каталоге x / в обоих тестах.
Обратите внимание, чтопомещать -l<lib>
перед исходными файлами - плохая практика, которая может привести к неопределенным ссылкам при линковке.Это правильный путь
gcc hello.c -Lx -lm