有关linux下的QT应用程序如何在开发板上运行急!!!谢谢各位

有关linux下的QT应用程序如何在开发板上运行急!!!谢谢各位,第1张

1想要在开发板上运行,你需要移植QTE添加arm-linux-交叉编译工具链

把原有的工程交叉编译生产开发板上可以运行的程序把可执行程序和QTE库考到开发板上再改一下环境变量就ok了

2用Qt

Creator啊

用户程序insmod 核心模块加载:具体如下:

核心模块编译完成后,基本上是个未经符号定位的目标文件(object)(当然,如果这个object又是一些子object经过ld -r生成的话,则子object之间的符号定位是已经完成的),object是一种可重定位的代码,它可以加载到不同位置的内存执行。而真正加载进核心,并成为核心的一部分,则是用户程序insmod和核心几个系统调用共同完成的。在此过程中,insmod主要完成或通过系统调用完成以下的工作:

1)由参数找到模块文件,如insmod fooo,模块文件就是fooo,根据模块文件计算出模块文件所需的内存大小

2)调用系统调用create_module,为该模块分配核心空间内存

3)调用系统调用query_module,得到核心提供的符号表,与系统调用create_module的返回值(核心模块首地址)加在一起对模块进行重定位。

4)在用户空间为核心模块分配内存,并往该段内存复制一个经过定位的object映象。

5)调用系统调用init_module,将用户内存中的模块映象copy到相应的核心空间(首地址为create_module的返回值)。

6)释放用户内存,中止insmod运行。

如果一切顺利,没有出现未定位的符号,则核心模块object就融入系统,成为系统的一部分了。

核心模块的加载过程对核心来说实际是个“静态链接”的过程,这和用户程序动态链接运行过程再链接需要的代码还是不太一样的,当然,object的可重定位特性保证了链接后的代码正常运行,这点倒是比较相似的。

使用Release 模式编译后,release 的目录下包含 Hello1exe 可执行程序。如果我们需要发布这个程序,那么还需要 QT 的运行库,包括哪些呢?拿一台干净的机器一个个试,终于把这些 Qt 库给找出来,成功运行 QtCore4dll QtGui4dll mingwm10dll libgcc_s_dw2-1dll 其中要特别注意的是,这些文件应该从 Qt 安装目录下的 [QT安装目录]\qt\bin 子目录中获取,因为[QT安装目录]\bin 也有同样的文件,但是无效。这里仅限 Windows 系统,其他非 Windows 系统尚未研究。不过也碰到一个小问题, Hello1 程序中有这么一行代码:QStringgbk_msg=codec->toUnicode("你确认要退出HelloQt程序吗?

以上就是关于有关linux下的QT应用程序如何在开发板上运行急!!!谢谢各位全部的内容,包括:有关linux下的QT应用程序如何在开发板上运行急!!!谢谢各位、在Linux下用QT编写的程序怎么在ARM上运行、怎样调试Qt程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10105970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存