首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为GDB设置sysroot

如何为GDB设置sysroot
EN

Stack Overflow用户
提问于 2021-10-29 19:31:46
回答 1查看 2.9K关注 0票数 0

场景

运行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 >附加启动命令中,我写道:

代码语言:javascript
运行
复制
set sysroot /home/user/Qt/6.2.0/gcc_64/
set solib-search-path /home/user/Qt/6.2.0/gcc_64/

问题

  1. 我在某个地方读到,为了加快调试速度,我需要将sysroot设置为本地库(即/home/mark/...而不是/home/user/...)。哪条路是正确的?

  1. 将sysroot设置为包含Qt库的lib文件夹的父目录是否正确?

  1. 在哪里运行info sharedlibrary命令?
EN

回答 1

Stack Overflow用户

发布于 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)提示符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69773936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档