如何在 Linux 中的单独/包含目录中编译额外/更新的库以及新程序
How to compile extra/updated libraries plus a new program in separate/contained directory in Linux
当我希望从没有软件包的源代码编译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 手册页。
相关文章:
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 在程序变得低效之前,允许多少新的[]和删除[]分配是否有限制?
- C++使用较新的编译器构建应用程序,而无需重新构建库
- .exe应用程序在windows10中创建新模块时抛出错误,但在windows7中工作正常
- 一个32位版本的应用程序,建立在CentOS 6 x64上,当在较新的Linux上启动时,在"dl_itera
- 否则在新程序中没有以前的 if 错误
- 提高驱动程序程序的时间效率
- 为什么当测试用例数为 1 时,我的程序不输入而是打印新行?
- 为什么新操作员挂起我的程序?
- C++程序将进程置于前台(如果已在运行),否则创建一个新进程
- 如何限制文件大小,以便我的程序在变大之后创建一个新文件?并编辑新创建的文件的名称
- 有没有办法从程序中打开一个新控制台,然后进入其中
- C 是否有办法使程序运行,只要引入了新值
- (C++)如何在 MOOS-ivp 中测试新应用程序
- 使用带有Eigen库的自定义新处理程序
- 了解新处理程序的行为
- 有没有办法测量应用程序/程序占用多少系统资源(例如 RAM)
- 程序c++程序的文件结构
- 用于创建菜单栏的c++ win32程序(程序编译并运行,也显示窗口但不显示菜单栏)
- 用于应用程序/程序设置的visual C++类