2009-10-02 83 views
6

我正在开发一个基于qt的应用程序,我想在同一台机器上开发32位和64位版本的应用程序,共享相同的源代码,脚本等。 该机器是Ubuntu Jaunty 64位,英特尔酷睿i7,8gb内存。 我知道,通过运行VMWare或VirtualBox可以使事情工作,但它似乎并不是一个好的解决方案,因为我想充分利用处理器(i7)。 我读了chrooted环境,在我看来它可能是我正在寻找的设置:我需要开发机器也能够运行刚刚构建的可执行文件。适用于32位*和* 64位Qt应用程序开发的最佳Ubuntu安装程序?

你有什么经验吗?你是否在64位主机上安装了这种32位chrooted env?它工作正常吗?如何正确设置它?

回答

5

我一直处于类似但并非确切的情况。我在64位Jaunty上运行时为32位Windows开发Qt4应用程序。一个chroot的环境会给你你想要的,而不必为了编译你的32位应用程序而烦恼。

我为Windows编译的是为此设置了一个交叉编译器。你可能不需要那样做。你可以用g ++ -m32编译成32位。为了避免编辑makefile和数十亿次,你可以创建/修改/使用Qt附带的spec文件,这样你就可以执行“qmake -project & & qmake -makefile spec blablabla”(如果我记得该命令正确)。

+0

我发现“/mkspecs /”包含linux-g ++ -32和linux-g ++ -64,并且这些特别添加了-m32和-m64。 然而,我不是chroot的实践,所以我正在寻找一个指南或如何做到这一点,并清除一些晦涩的问题,我有它,即,我是否需要启动另一个Xserver运行chrooted 32位应用程序? – Manuel 2009-10-02 12:29:25

+0

如果使用mkspecs,则不需要使用chroot。你将不得不在你的机器上安装32位和64位库,但是之后,你可以运行“qmake -project && qmake -makefile linux-g ++ - && make”。它应该建立在任何你想要的位置上。 – ZachS 2009-10-02 13:35:34

+0

当然你是对的ZachS,我只是对事情有所了解:我会先尝试mkspecs。 – Manuel 2009-10-02 14:56:49

3

我也是类似的情况,这里就是我的工作:

我使用Qt的定制版本。除了-platform参数(我将其设置为linux-g ++ -64第一个版本和第二个版本的linux-g ++ - 32)之外,我使用相同的配置选项构建Qt两次。我还使用不同的-prefix将两个版本安装在单独的目录中。

我使用QtCreator来构建我的应用程序。我在选项 - > Qt4 - > Qt版本对话框中添加了两个Qt版本。然后,我为我的项目设置了两个不同的构建配置,具有相同的构建选项,但有一个使用32位Qt目录,另一个使用64位Qt目录。然后QtCreator负责处理所有的魔法,我只需要在构建配置之间进行切换,以便同时拥有32位和64位Qt应用程序。没有chroot,没有虚拟机,没有任何东西,只是一个简单的构建。

虽然有一个警告。构建32位的Qt显然需要32位版本的大多数开发库(X libs,stdlibs等),这些都可以通过ia32-libs和lib32stdC++ 6在Ubuntu Jaunty上轻松获得。我没有找到在64位体系结构上进行32位开发的唯一库,它是gstreamer库,这意味着Phonon可能无法工作。我需要Phonon,所以我通过在虚拟机中构建Qt,然后将Qt的安装目录复制到我的开发机器上工作。

祝你好运。

+0

谢谢,正在寻找这个。我会尝试你建议的VM方法 – KGCybeX 2018-01-24 13:19:23

+0

我需要查询你的解决方案。我正在Ubuntu 16.04(i386/32bit)虚拟机中构建Qt5.5.1。除了通常的'./configure -prefix/path/to/Qt5-5-1/install /',并且接受许可标志,你是否指定了任何特定平台或相关标志?我正在使用'./configure -opensource -nomake示例-nomake测试-confirm-license -prefix/opt/qt-5.5.1'这是否看起来很熟悉,我是否缺少任何标志? – KGCybeX 2018-01-24 16:54:45

相关问题