当我运行一个使用库的简单应用程序(在本例中为 Ogre3D,来自 NetBeans)时,它会中断并显示以下消息:
Error occurred during execution: InternalErrorException:
Could not load dynamic library /snap/netbeans/84/usr/local/lib/OGRE/RenderSystem_GL.
System Error: /snap/netbeans/84/usr/local/lib/OGRE/RenderSystem_GL.so.14.1:
cannot open shared object file:
No such file or directory in DynLib::load at
/home/fedor/projecten/c++/ogre-14.1.0/OgreMain/src/OgreDynLib.cpp (line 136)
该应用程序找不到它所需的库,它似乎正在将我给它的搜索路径(usr/local/lib/OGRE)附加到 NetBeans 的安装路径(/snap/netbeans/84)。
当我在没有 NetBeans 的情况下启动同一个应用程序时,只需单击它,它就可以正常运行。
当从 NetBeans 启动应用程序时,如何让应用程序使用正确的工作目录并在适当的位置搜索库?
(使用 Ubuntu 22.04LTS、NetBeans 19 和 g++ 版本 11.4.0)
答案1
事实证明问题出在 Snap 上。我删除了 Netbeans snap 安装并下载了二进制包。这完全没有出现任何问题。