Я только что обнаружил, что флаг -lm
требуется gcc для компиляции программы, которая ссылается на функцию из математической библиотеки. Мне интересно, почему явный флаг привязки не требуется при компиляции программ, содержащих другие библиотеки, такие как библиотека времени. Если я пишу программу, в которой вызывается функция time()
, она скомпилировалась бы без проблем даже без ссылок. Но программа с математической библиотекой, которая задействована, просто не будет работать без флага -lm
.
Может кто-нибудь объяснить причину такого поведения? Спасибо за ваше время.