首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为Windows平台构建的Qt X11应用程序

为Windows平台构建的Qt X11应用程序
EN

Stack Overflow用户
提问于 2012-06-15 10:46:37
回答 1查看 1.4K关注 0票数 3

我知道这很奇怪,但我需要在MS平台上执行一个支持X11协议的Qt应用程序。

很明显,如果我在Unix环境中构建我的Qt源代码,它将自动成为一个X11应用程序,并且这个应用程序只能在Unix操作系统上运行,而不能在MS上运行。

我试图使用MXE (MinGW交叉环境)在Unix中编译我的应用程序,但它无助于解决X11问题。它为Windows创建应用程序,但应用程序不是XWindow应用程序。

还有一个用于XPortMinGW的minGW项目。但我不知道它是否适用于Qt应用程序。

有任何方法来构建我的Qt应用程序与X11支持,可以运行在Windows?

EN

回答 1

Stack Overflow用户

发布于 2012-06-16 05:06:54

我不认为需要交叉编译。有两个问题:

  1. 获取Xlib编译为Windows。我不知道任何被移植到Windows的被维护的Xlib实现。你肯定需要找到一个,或者做一个。希望Xlib只依赖于少数posix API,它们可能很容易转换成win32。别提Cygwin了。

您可能会很幸运地将Xlib自己移植到Qt的网络后端,并在此过程中使其跨平台。Xlib将简单地使用Qt的核心和网络模块。这没问题。

好消息是Qt 5附带了一个捆绑的Xlib实现。在Windows上编译可能要比在Windows上使用said Xlib构建其他implementation.

  • Configuring Qt要容易得多。要正确地执行此操作,您可能需要使用Qt附带的配置工具,并重新构建配置工具,并添加一个与Xlib链接的makespec。

使用Qt 5.应该要容易得多。

这不是一件完全琐碎的事情,但应该是可能的。给自己一个月的时间,并期望了解一些Qt配置和Xlib的细节。

关于Cygwin的笔记

  1. 如果您的应用程序是封闭的,并且分布在组织之外,则需要购买商业许可证才能重新分发cygwin.dll。否则,Cygwin就是GPL,只需链接到cygwin.dll,就会使您的应用程序成为一个派生的工作。当您将posix-和非posix代码混合在同一个应用程序中时,
  2. Cygwin就会出现问题,特别是如果非posix代码是像Qt这样的大型框架的话。当然,您可以在Qt中使用Posix平台代码,并使其全部在Cygwin上运行,但是这样您就会失去性能,并暴露出Cygwin模拟POSIX API的缺点。
  3. 使用Cygwin/ windowing系统,但如果让Qt使用Windows,则可能需要对Qt代码进行大量调整。当然,可以在Windows上使用Qt和Xlib,但至少您不必调试/处理Cygwin的怪癖。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11049202

复制
相关文章

相似问题

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