0

进一步说明我的情况。我知道当您使用动态库时,您需要将库路径导出到 LD_LIBRARY_PATH,以便可执行文件在运行时找到这些库。如果我不这样做,就会出现一个错误,即找不到共享库。

现在,如果我添加以下链接器标志“-L/path/to/library/-lthelibrary.so”,我可以运行我的可执行文件,而无需将库路径导出到 LD_LIBRARY_PATH。

为什么是这样?

4

1 回答 1

0

首先,您通常不需要设置LD_LIBRARY_PATH运行二进制文件。加载程序使用此环境变量来查找其他位置,.so以便在执行二进制文件时查找要加载的文件。

需要设置LD_LIBRARY_PATH您的二进制.so文件是否引用了一个或多个在编译时所在位置不可用的文件。如果任何直接引用的.so文件依赖于在创建文件时不可用的东西,也需要它.so

使用该ldd命令检查二进制文件中的依赖信息,以便更清楚地了解创建二进制文件时链接器保存的内容。

于 2012-08-31T15:10:48.597 回答