gcc
Построение файла:
gcc -I/usr/local/cpu/include example.cpp
-I указывает папку с хидерами, которые нужно включить
Статические и разделяемые библиотеки
Разделяемые библиотеки имеют расширение .so (.dll в Windows, .dylib в OS X). Внутри файла находится весь код, относящийся к библиотеке, программы ссылаются на нее динамически в рантайме. Программа, использующая разделяемую библиотеку, ссылается только на код, который она реально использует в ней.
Статические библиотеки имеют расширение .a (.lib в Windows). Внутри файла так же находится весь код, относящийся к библиотеке, но программы ссылаются на нее о время компиляции. Программа, использующая статическую библиотеку, делает копии используемого кода и вставляет его в свой код.
Разделяемые уменьшают общий размер, если один и тот же код используется в нескольких программах. Позволяют динамически подменять библиотеку. Однако замедляют вызов.
Статические увеличивают размер бинарника, но ненужно тащить дополнительные файлы.
Разделяемая библиотека - это книжная библиотека, куда каждый приходит и "одалживает" нужный метод/функцию. Статическая библиотека - это книжный магазин, куда можно прийти и купить свою копию нужной книги/функции.