【发布时间】:2011-04-08 16:11:42
【问题描述】:
我提取了一个使用 sfml 库在 C++ 中编写的应用程序,但在 Eclipse 中设置库时遇到了问题。我指定了包含路径、lib 路径并包含了所有需要链接的 .so 库。该应用程序编译得很好,但它在运行时抱怨缺少库。为什么会这样?我不是已经在项目设置中包含了库的路径吗?我什至尝试将所有 .so 文件放在可执行目录中,但没有成功。
【问题讨论】:
标签: c++ linker include-path
我提取了一个使用 sfml 库在 C++ 中编写的应用程序,但在 Eclipse 中设置库时遇到了问题。我指定了包含路径、lib 路径并包含了所有需要链接的 .so 库。该应用程序编译得很好,但它在运行时抱怨缺少库。为什么会这样?我不是已经在项目设置中包含了库的路径吗?我什至尝试将所有 .so 文件放在可执行目录中,但没有成功。
【问题讨论】:
标签: c++ linker include-path
可执行文件中只存储了共享库的名称。在程序启动时,动态链接器然后在其搜索路径中搜索指定的库。您可以通过在环境变量 LD_LIBRARY_PATH 中放置冒号分隔或在 /etc/ld.so.conf 中指定它们来添加/指定搜索路径(至少如果您使用某些基于 unix 的操作系统)。在 Windows 上,搜索动态链接库 (DLL) 时会使用整个 PATH 环境变量。
要查看给定应用程序使用的共享库的路径,请运行ldd applicationPath。
【讨论】: