gpt4 book ai didi

c++ - Qt 5.x 嵌入式调试 - 部署剥离的二进制文件?

转载 作者:可可西里 更新时间:2023-11-01 16:47:31 24 4
gpt4 key购买 nike

我相信(如果我错了请纠正我)当使用 gdb 进行远程调试时和 gdbserver ,在 gdbserver 下的目标上运行的二进制文件不需要二进制文件中的调试信息,但需要运行 gdb 的主机, 确实。

我们带有调试符号的应用程序二进制文件大约为 112 兆 (!)。如果我运行 strip,二进制文件只有 6.7 兆,这将更快地部署到我们的目标。

是否可以让 Qt Creator 在部署之前删除二进制文件?我们还能调试吗?

最佳答案

要剥离符号,您可以让 Qt Creator 在 qmake 和 make 之后运行最后的构建步骤,这会在您的应用程序包中的二进制文件上调用“剥离”命令。例如:-

strip -u -r ./MyApplication/Contents/MacOS/MyApplication

为了调试,你需要一个 separate .dsym file在构建期间生成,其中包含符号。如果它驻留在主机上,调试器应该自动选择它;它使用 lldb,但使用 gdb,您可能需要手动加载符号文件。

how to enable that extra build step

从右侧工具栏中选择项目

Menu bar

确保您在“构建和运行”选项卡上(GraphicsScene 只是项目的名称)

tabs

构建步骤下,您会看到两个步骤,qMakeMake。选择为自定义流程步骤添加构建步骤

Build Steps

填写您可能需要更正路径的相关字段,而不是仅仅复制这些:

Enter details

构建完成后,将运行 strip 命令。如果您有任何错误,可能是 strip 命令的路径或应用程序包的可执行文件的路径有问题。

请注意,如果您需要剥离的完整路径,它位于/usr/bin/strip。

至于符号文件,我相信你可以使用addsymbolfile命令和dsym文件路径的参数。但是,gdb 已被弃用,您现在应该真正使用 lldb,一旦它被 Spotlight 索引,它会自动找到 dsym 文件。

关于c++ - Qt 5.x 嵌入式调试 - 部署剥离的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35468531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com