是否将qt移植到另一个操作系统这么简单?

时间:2009-05-18 17:11:37

标签: qt

文章Porting Qt for Embedded Linux to Another Operating System列出了将Qt for Embedded Linux移植到另一个操作系统所需要做的五件事。来自文章:

  

如果您计划将自己的端口连接到另一个操作系统,则需要注意几个问题。特别是你必须解决嵌入式Linux的共享内存和信号量(用于共享窗口区域)的Qt,并且必须提供类似于Unix域套接字的内容以进行应用程序间通信。您还必须提供屏幕驱动程序,如果要实现声音,则必须提供自己的声音服务器。最后,您必须修改Qt for Embedded Linux使用的事件调度程序。

真的很容易将Qt移植到另一个操作系统,或者我错过了一些信息吗?

5 个答案:

答案 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 ++中,让汇编程序为我处理它。因为我是单线程的,所以我不太关心原子操作所需的共享数据/独占访问。