Я обычно использую пакеты, предоставленные моим дистрибутивом, если они достаточно новой версии. Для этого есть две причины:
1) Кто-то позаботится о том, чтобы я получал новые пакеты, если обнаружены уязвимости в старых.
2) Это экономит мое время.
Когда я настраиваю проект разработки, я никогда не создаю свои собственные каталоги include / lib, если сам проект не является авторским источником для соответствующих файлов, которые я там помещаю.
Я использую pkg-config, чтобы указать расположение необходимых библиотек и включить файлы в мой компилятор. pkg-config использует некоторые .pc-файлы в качестве источника информации о том, где что-то должно быть, и они поддерживаются теми же людьми, которые создают пакеты для вашего дистрибутива. Некоторые библиотеки не предоставляют этот файл, но являются альтернативным скриптом -config. Я приведу два примера:
Я не работаю с Fedora 13, но пример для Ubuntu 10.04 будет;
*) Установите liblog4c-dev
*) Команда "log4c-config --libs" возвращает "-L / usr / lib -llog4c" ...
*) Команда "log4c-config --cflags" возвращает "-I / usr / include"
А для примера использования pkg-config (для примера я буду использовать SDL):
*) Установите libsdl1.2-dev
*) Команда "pkg-config sdl --libs" возвращает "-lSDL"
*) Команда "pkg-config sdl --cflags" возвращает "-D_GNU_SOURCE = 1 -D_REENTRANT -I / usr / include / SDL"
... Таким образом, даже если другой дистрибутив решит расставить вещи по-разному, существуют сценарии, которые должны дать вам надежный ответ о том, где что находится - так что вещи можно построить в большинстве дистрибутивов. Автоинструменты (automake, autoconf и т. П.) И cmake весьма полезны для того, чтобы вам не приходилось сталкиваться с этими проблемами.