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

时间:2013-10-14 17:41:18

标签: c++ makefile install configure

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

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

1 个答案:

答案 0 :(得分:0)

首先使用:

编译库
./configure --prefix=$HOME/myapp
make
make install

请注意,由于您要安装到自己的主目录,因此不需要“sudo”。

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

./configure --help

寻找类似指示库的路径的选项。

如果找不到指向库路径的方法,请将CPATH环境变量设置为指向库的include目录,将LIBRARY_PATH指向lib-files所在的子目录。类似的东西:

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

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

export LD_LIBRARY_PATH=$HOME/myapp/lib

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