windows 通过Visual Studio 2022运行Linux项目时无法打开共享对象文件

v440hwme  于 2023-03-19  发布在  Windows
关注(0)|答案(1)|浏览(284)

我正在Windows 10上通过Visual Studio 2022在WSL Ubuntu 20.04中构建和运行C++项目。
我包括了项目Additional Library Search Path的所有相关路径和Library Dependecies的所有.so文件,并且能够在VS中构建项目。
然而,当我在VS中运行时,我得到了error while loading shared libraries: xxx.so: cannot open shared object file: No such file or directory。丢失的.so位于/home/myuser/my_ws/install/libDIR)。如果我手动将该库从DIR复制到/usr/lib/x86_64-linux-gnu,那么它可以找到它。
我尝试将.so添加到Configuration Properties -> Debugging -> Additional Symbol Search Paths,但没有帮助

更新

我试着按照@Sam Varshavchik的建议将export LD_LIBRARY_PATH=/home/myuser/my_ws/install/lib添加到Pre-Launch Command中,结果成功了。

bf1o4zei

bf1o4zei1#

要在运行时加载.so库,必须满足以下三个条件之一。

  1. .so库必须位于默认系统库位置之一,如/usr/lib/usr/lib64,或位于其中的各个子目录中。/etc/ld.so.conf中列出了其他默认系统库位置。
    1.在运行尝试加载.so文件的可执行文件之前,必须相应地设置LD_LIBRARY_PATH环境变量。
    1.必须使用-rpath-R链接器标志链接可执行文件,以指定要在运行时添加到搜索路径的目录。
    您可以决定哪种方法最适合您,并相应地进行操作。请参阅ld.so(8)手册页以获得共享库加载过程的完整描述和其他选项。

相关问题