如何在 Linux 中的单独/包含目录中编译额外/更新的库以及新程序

How to compile extra/updated libraries plus a new program in separate/contained directory in Linux

本文关键字:新程序 程序 更新 编译 Linux 单独 包含目      更新时间:2023-10-16

当我希望从没有软件包的源代码编译Linux中的程序时,通常需要安装比标准存储库提供的更高版本的库。与其使用外部存储库,我更喜欢从源代码编译这些更新的库。

如何配置->make->sudo 使安装额外的需要的库和最终程序,以便所有更新的库和新程序都安装在我的主目录中的单独文件夹中,以便只有新程序使用这些库?

首先用

以下命令编译库:

./configure --prefix=$HOME/myapp
make
make install

请注意,不需要"sudo",因为您要安装到自己的主目录。

现在,您需要设置应用程序的编译,以便它找到刚刚安装的库。如果您要编译的应用程序也使用automake,请查看帮助:

./configure --help

寻找类似选项的内容来指出库的路径。

如果无法指出库的路径,请将 CPATH 环境变量设置为指向库的包含目录,LIBRARY_PATH指向 lib 文件所在的子目录。像这样:

export CPATH=$HOME/myapp/include
export LIBRARY_PATH=$HOME/myapp/lib

如果您编译/安装所有内容,那么您已经完成了困难的部分。现在,如果它是一个动态可执行文件,你只需要告诉动态链接器在哪里可以找到 lib 文件。通过将 LD_LIBRARY_PATH 环境变量设置为LIBRARY_PATH环境变量指出的同一目录来执行此操作。

export LD_LIBRARY_PATH=$HOME/myapp/lib

查看 gcc 手册页,了解有关 CPATH 和LIBRARY_PATH环境变量的更多信息。有关LD_LIBRARY_PATH环境变量的信息,请查看 ld.so 手册页。