如何从源代码构建qt

时间:2009-08-07 14:24:02

标签: qt installation qmake

过去几天我通过Qt论坛和谷歌搜索了很多,但我找不到任何明显的答案。

我发现-prefix选项(甚至没有记录在Windows上)可以提供配置以指定不同的安装目录,但这根本不清楚源和二进制文件的分离,因为构建仍然是在源目录中完成,然后将安装所需的文件复制到安装directoy。我尝试了这个-prefix选项,并遇到了一些问题。 (即它不会将.pdb文件复制到安装目录。)

然后我发现this link关于进行阴影构建,但它有一个很大的限制,即构建目录必须与源目录处于同一级别。


  

我猜你没试过make   安装?所以试试吧。这应该   将Qt安装到一个单独的目录中   远离消息来源。

你是说我配置后,我应该做nmake安装而不是nmake?我知道nmake将从qmake处理生成的makefile,并将它们放在源Qt目录中,但是nmake install将完全做什么,即在哪个目录中安装文件以及如何指定文件的安装目录。 / p>

请注意,我已经这样做了:

configure -prefix builddir -platform win32-msvc2005
nmake install

以上两行的效果是qt是在源目录中编译的,而不是直接编译到我用前缀指定的builddir。然后编译的文件被复制到我的builddir中。我希望能够将我的Qt文件直接构建到构建目录,因为这样我在编译期间需要4 Gb空间用于源代码。此外,pdb文件未复制到我的buildir,这是另一个问题。

4 个答案:

答案 0 :(得分:15)

基本上,您只需从构建目录运行configure.exe即可。例如:

mkdir \qt\4.5.2-build
cd \qt\4.5.2-build
set PATH=%cd%\bin;%PATH%
\qt\4.5.2-sources\configure.exe -platform win32-msvc2005

如果源位于\qt\4.5.2-sources,则会导致构建进入当前驱动器上的\qt\4.5.2-build

此外,您必须在PATH中使用perl,建议使用ActiveState Perl。

我之前没有听说过这种限制,其中构建和源目录必须处于同一级别。如果遇到此问题,可以尝试通过创建符号链接来解决此问题(请参阅mklink命令)。

答案 1 :(得分:0)

在Windows上的IIRC,你必须做一个沙箱安装,你不能做UNIX典型的“make install”。

通常有两种选择来构建Qt,-prefix-install和-prefix / foo

你选择一个,所以如果-prefix不允许你输入make install,那么我想在Windows上你必须使用-prefix-install route,它是你提取Qt的目录的沙盒安装。

我猜你没试过make install?所以试试吧。它应该将Qt安装到远离源的单独目录中。

答案 2 :(得分:0)

至少可以通过临时将\ qt \ 4.5.2-sources \ include \ Qt添加到包含路径来解决丢失包含文件(例如qscriptengine.h)的问题。

答案 3 :(得分:0)

我将阴影版本从我的主文件夹移动到C:中的文件夹,并且它有效。我知道这很奇怪,但那就是发生了什么。我怀疑它一定是syncqt中的错误。