我通常使用我的发行版提供的软件包,如果它们的版本足够新的话。有两个原因:
1)如果旧包中的安全漏洞被发现,有人会确保我得到新包。
2)它节省了我的时间。
当我建立一个开发项目时,我从不创建自己的 include/lib 目录,除非项目本身是我放在那里的相关文件的权威来源。
我使用 pkg-config 来提供必要库的位置并将文件包含到我的编译器中。pkg-config 使用一些 .pc 文件作为有关事物应该在哪里的信息来源,这些信息由为您的发行版创建软件包的同一个人维护。一些库不提供此文件,而是提供替代的“-config”-script。我将提供两个示例:
我没有运行 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”
... So even if another distribution decides to put things in different paths, there are scripts that are supposed to give you a reliable answer to where things is - so things can be built on most distributions. Autotools (automake, autoconf, and the likes) amd cmake are quite helpful to make sure that you don't have to deal with these problems.