我正在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/lib
(DIR)。如果我手动将该库从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
中,结果成功了。
1条答案
按热度按时间bf1o4zei1#
要在运行时加载
.so
库,必须满足以下三个条件之一。.so
库必须位于默认系统库位置之一,如/usr/lib
或/usr/lib64
,或位于其中的各个子目录中。/etc/ld.so.conf
中列出了其他默认系统库位置。1.在运行尝试加载
.so
文件的可执行文件之前,必须相应地设置LD_LIBRARY_PATH
环境变量。1.必须使用
-rpath
或-R
链接器标志链接可执行文件,以指定要在运行时添加到搜索路径的目录。您可以决定哪种方法最适合您,并相应地进行操作。请参阅
ld.so(8)
手册页以获得共享库加载过程的完整描述和其他选项。