Одной стандартной библиотекой сыт не будешь
Приведённые выше универсальные Makefile'ы обладают одним недостатком, они могут собирать только проекты не использующие ничего кроме стандартных библиотек C и C++. Если вдруг захотелось чего-то большего, то их всё же придётся немного модифицировать.
Но, перед тем как написать набор шаманских заклинаний о том как подружить Makefile с внешней библиоткой, разумеется необходимо её установить. Если вы только что свалились с луны винды, то перед установкой следует забыть о существовании офф сайта проекта или по крайней мере о кнопке "Download" на нём. Библиотеки ставятся через apt так же как и остальные программы. Имя пакета, который необходим для написания программы использующей библиотеку "abc", как правило выглядит как "libabc-dev" либо "libabc[N]-dev" где [N] это мажорная часть версии библиотеки (как правило это одна цифра от 0 и до бесконечности).
Подавляющее большинство библиотек в линуксе используют pkg-config для упрощения их использования в проектах. Посмотреть список библиотек информация о которых доступна через pkg-config можно следующей командой:
Найдя в списке требуемую библиотеку вы подчерпнёте одно очень важно сведение: имя по которому можно получить информацию об этой библиотеки из вашего Makefile'а. Теперь, чтобы получить флаги которые нужно передать компилятору при компиляции программы использующей библеотеки из этого списка, необходимо использовать опцию --cflags, а для получения списка флагов линкеру опцию --libs. Например, в случае если вы хотите использовать libxslt и sqlite в своей программе, вам потребуются следующие команды:
Теперь приступим к модификациям. Всё что требуется, это добавить нужные флаги компилятора и линкера в соответствующие переменные, используемые в неявных правилах. А именно, нужно добавить флаги компилятора в переменную CFLAGS и флаги линкера в LDFLAGS. Если вы обратите внимание на структуру написанных мной Makefile'ов, то заметите, что в начале я объявляю переменные (первые три строчки в обоих C и C++ версиях), а потом перехожу к объявлению целей. После нехитных модификаций Makefile для C++ приложения, использующего библиотеки libxslt и sqlite3, будет выглядеть так:
Думаю, что модификация сишного Makefile'а дело достаточно тривиальное, чтобы не приводить здесь соответствующий листинг.