为什么从 Netbeans 启动的 c++ 应用程序使用 Netbeans 安装目录?

为什么从 Netbeans 启动的 c++ 应用程序使用 Netbeans 安装目录?

当我运行一个使用库的简单应用程序(在本例中为 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 安装并下载了二进制包。这完全没有出现任何问题。

相关内容