文章Porting Qt for Embedded Linux to Another Operating System列出了将Qt for Embedded Linux移植到另一个操作系统所需要做的五件事。来自文章:
如果您计划将自己的端口连接到另一个操作系统,则需要注意几个问题。特别是你必须解决嵌入式Linux的共享内存和信号量(用于共享窗口区域)的Qt,并且必须提供类似于Unix域套接字的内容以进行应用程序间通信。您还必须提供屏幕驱动程序,如果要实现声音,则必须提供自己的声音服务器。最后,您必须修改Qt for Embedded Linux使用的事件调度程序。
真的很容易将Qt移植到另一个操作系统,或者我错过了一些信息吗?
答案 0 :(得分:3)
端口的另一个重要组件是QAtomic,以确保您可以使原子操作和隐式共享运行良好。另见
http://labs.trolltech.com/blogs/2007/08/28/say-hello-to-qatomicint-and-qatomicpointer/
答案 1 :(得分:2)
由于Qt已被移植了很多次,因此它本身就很简单似乎是合乎逻辑的。但问题确实存在于您移植到的平台上以及它目前支持的功能数量。
答案 2 :(得分:1)
假设您发现所有这些事情都很简单,那么端口很简单。
答案 3 :(得分:0)
在对此进行更详细的研究之后,我得出的结论是“将嵌入式Linux移植到另一个操作系统的Qt”这篇文章假定您正在将Qt移植到一个非常类似“Linux”的操作系统。
答案 4 :(得分:0)
我尝试了这个并且目前正在取得进展。 一些困难:
IDE - 我必须手动添加所有Qt文件并使用#ifdefs对抗编译器,直到它构建所有依赖项为止。
Linux(ness) - 我必须禁用目标操作系统不支持的所有Linux / Windows内容:线程,套接字和进程。即使是定时器也略有不同。
提示: 从小开始:我在我的IDE中将QtCore编译为标准库,接下来是QtGui,与QtCore相比是一个庞然大物。
我打算只运行一个QThread,所以我必须人为地制作一个Thread对象来避免空指针。您无法编译出线程信息,因为它是所有QObject的关键。
到目前为止,我在qcoreapplication中运行了一个qeventloop。 我写了一些内联汇编但是我的IDE和编译遇到了严重的困难。我把它留在了C ++中,让汇编程序为我处理它。因为我是单线程的,所以我不太关心原子操作所需的共享数据/独占访问。