从NetBeans启动Ogre3D C++应用时库路径异常的解决求助
我最近碰到个棘手的问题:在NetBeans里运行一个依赖Ogre3D库的简单C++应用时,程序直接崩溃,弹出了如下错误信息:
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后面,导致找不到正确的库文件。但奇怪的是,我直接双击运行这个应用程序的时候,它却能正常工作,完全没有库加载的问题。
我当前的环境是Ubuntu 22.04LTS系统,NetBeans版本19,编译器用的是g++ 11.4.0。有没有过来人能指点一下,怎么让从NetBeans启动的应用使用正确的工作目录,并且能在正确的位置找到所需的库文件呢?
备注:内容来源于stack exchange,提问作者FvEldijk

