当我希望在源代码中从没有软件包的源代码编译Linux程序时,通常需要使用比标准存储库提供的版本更高的版本安装库。我更喜欢从源代码编译那些更新的库,而不是使用外部存储库。
如何配置 - > make-> sudo make安装额外需要的库和最终程序,以便所有更新的库和新程序安装在我的主目录中的单独文件夹中,以便只有新的程序使用那些库?
答案 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手册页。