我有使用 makefile 构建的软件。该 makefile 还包含不同程序(例如 gsoap、postgresql 等)的(相对)路径,这些程序提供了我需要包含的内容。在 Windows 中,我只需下载它们并解压/安装它们到我想要的任何位置。但对于Ubuntu,我经常发现推荐使用apt-get来安装软件。
根据我读过的内容,apt-get 不会将程序安装到一个目录中,而是将它们分开。这样我就不能简单地指向 makefile 可以找到其内容的目录,对吧? Linux 中是如何处理的?
答案1
我假设您正在谈论在 Ubuntu 上构建/编译 C/C++ 软件。从你的问题中并不清楚这一点。
在具有包管理系统的现代 Linux 发行版(几乎包括所有主要发行版)上,您应该尽可能使用包管理系统来安装软件。
在 Linux 发行版中,库本身以及针对库构建/编译所需的所谓“开发”文件通常是单独打包的。这些通常采用libname
(对于库)和libname-dev
或libname-devel
(对于“开发”文件)的形式。对于 C/C++,开发文件是头文件。
这些头文件通常由包安装在标准位置,编译器可以在构建时找到它们。这些位置通常在内部/usr/include
。您通常不需要做任何特殊的事情来将编译器指向这些位置 - 它已经知道它们。
答案2
如果您尝试构建的软件使用了不错的构建系统,那么应该可以告诉它在哪里可以找到它所依赖的东西。 - 也就是说,如果它没有自动找到它,它应该自动找到它。 - 您可能需要软件包的-dev
/版本来获取您的软件构建所需的内容。-devel