我遇到共享库的问题。 我有一个与一些共享库链接的二进制文件。 我使用gcc -L dirLibraries构建所有c ++,ecc ecc -llibraryName1 -libraryName2 ecc 现在如果我启动我的二进制文件告诉我他找不到一个库, 如果我从另一个目录启动二进制文件,他告诉我找不到另一个库。 我需要做什么告诉我的二进制文件需要独立加载库我启动程序的位置?
答案 0 :(得分:2)
您可以将要加载的共享库放在库搜索路径上,或将包含它们的目录添加到LD_LIBRARY_PATH
。另见Shared Libraries,尤其是“第3.2节。如何使用库”和“第3.3.1节.LD_LIBRARY_PATH”。
答案 1 :(得分:1)
有两个环境变量可能会有所帮助:
LD_RUN_PATH
来配置在查找共享库时要搜索的一组位置。LD_LIBRARY_PATH
添加其他路径以搜索共享库。如何设置环境变量在某种程度上取决于您使用的环境。如果您使用的是bash
或ksh
之类的shell,则可以使用
export LD_LIBRARY_PATH=/some/path:/another/path:/as/many/as/you/need
在此之后,从此shell启动的程序将继承环境变量(您可能还需要查看相关文档,例如bash's documentation)。
如果您使用某种IDE,则可能需要从~/.profile
文件中设置环境变量。