Префикс lib в библиотеках

Из http://www.adp-gmbh.ch/cpp/gcc/create_lib.html:

Примечание: библиотека должна начинаться с трех букв lib и иметь суффикс .a.

Это соглашение операционной системы, или gcc/ar quirk? Кажется, что Xcode может создавать библиотеки без префикса. Что он делает по-другому?

Ответ 1

Вы можете назвать библиотеку так, как хотите, но если вы хотите, чтобы gcc -l, чтобы найти правильный, вы должны назвать его так, как эта ссылка описывает. Например:

gcc -o myapp myapp.c -lm

Скомпилирует myapp.c, свяжет результирующий объект с libm.a и выдает исполняемый файл с именем myapp. В наши дни может быть более сложный путь поиска, включающий имена динамических библиотек и т.д., Но вы должны получить основную идею из этого примера.

На странице gcc man:

-l библиотека...

... окружает библиотеку с lib и .a и ищет несколько каталогов.