1. i want know why we write 4 and 5 steps.
На шаге 4 вы создаете программную ссылку на имя библиотеки, которую компоновщик ищет для ссылки.
На шаге 5 вы создаете программную ссылку на библиотеку, указывающую ее major версию. Вам не нужно выполнять эти шаги как таковые, вместо этого вы можете сгенерировать libhuffman.so
в качестве вывода на первом шаге, что и ищет компоновщик. Но это соглашение соблюдается, так что основные и вспомогательные версии библиотеки легко отслеживаются. Как правило, библиотека имеет имя library_name.MAJOR_VERSION.MINOR_VERSION
. Существует мягкая ссылка на нее в виде library_name.MAJOR_VERSION
и еще одна мягкая ссылка с library_name
. library_name
имеет вид lib [имя_библиотеки]. , поэтому , поскольку это формат, ожидаемый компоновщиком при использовании опции -l
. Вы можете проверить библиотеки на вашем компьютере с Linux, и вы увидите, что это соглашение соблюдается во многих случаях. Эта ссылка предоставляет некоторые подробности относительно этого.
2.in 6th step why we use only lhuffman insted of libhuffman
компоновщик GCC добавляет lib & .a (или .so ) к имени библиотеки, указанному с помощью опции -l
.
Надеюсь, это поможет!