场景
运行Ubuntu20.04和QtCreator的Dev机器。Qt库被安装到/home/mark/Qt/6.2.0/gcc_64/lib
中。
运行Ubuntu 20.04的目标机器。Qt库被安装到/home/user/Qt/6.2.0/gcc_64/lib
中。
问题
在从QtCreator调试远程应用程序时,我得到:
/home/user/Qt/6.2.0/gcc_64/lib/libQt6Gui.so.6.等8个库的
无法加载共享库符号
使用"info sharedlibrary“命令查看完整的列表。
你需要"set solib搜索路径“还是"set sysroot"?
设置
在Tools > Options > Debugger > GDB >附加启动命令中,我写道:
set sysroot /home/user/Qt/6.2.0/gcc_64/
set solib-search-path /home/user/Qt/6.2.0/gcc_64/
问题
/home/mark/...
而不是/home/user/...
)。哪条路是正确的?lib
文件夹的父目录是否正确?info sharedlibrary
命令?发布于 2021-10-30 03:53:32
哪条路是正确的?
在调试过程中可以找到库的库,即开发机器上的路径。
设置sysroot正确吗?
当您拥有完整的目标库(包括所有系统库)时,应该使用sysroot
。
也就是说,如果您在例如/home/mark/target/
下面有目标库的完整镜像,那么您将使用set sysroot /home/mark/target
。
由于您没有这样的目录,所以根本不应该使用sysroot
。
相反,您应该告诉GDB,它可以在/home/mark/Qt/6.2.0/gcc_64/lib
中使用set solib-search-path /home/mark/Qt/6.2.0/gcc_64/lib
找到库。
我应该在哪里运行信息共享库命令?
在(gdb)
提示符。
https://stackoverflow.com/questions/69773936
复制相似问题