1. Почему нам нужно связать нестандартные библиотеки / включить нестандартные заголовочные файлы, когда они уже находятся в нужной папке
anirudh@anirudh-Aspire-5920:~/Documents/DUMP$ locate libpthread
/lib/libpthread-2.12.1.so
/lib/libpthread.so.0
/usr/lib/libpthread.a
/usr/lib/libpthread.so
/usr/lib/libpthread_nonshared.a
/usr/lib/xen/libpthread.a
/usr/lib/xen/libpthread_nonshared.a
anirudh@anirudh-Aspire-5920:
Справочная страница ld.so/ld-linux.so - dynamic linker/loader
говорит, что необходимые библиотеки, необходимые программе, ищутся In the default path /lib, and then /usr/lib.
Когда файл .so моей библиотеки уже находится в папке / lib, тогда зачем мне нужно связывать его исключительно.
Также опция -l
используется для связывания статических библиотек. но когда я делаю pmap процесса, я вижу, что используется динамическая библиотека pthread с расширением .so
, а не библиотека с расширением .a
.
Аналогично
anirudh@anirudh-Aspire-5920:~/Documents/DUMP$ locate mysql.h
/usr/include/mysql/mysql.h
anirudh@anirudh-Aspire-5920:~/Documents/DUMP$
Если он уже присутствует в папке /usr/include
, которая является стандартной папкой для всех заголовочных файлов, тогда зачем мне включать его исключительно с помощью опции -I
.