我想静态编译QT,我做了以下步骤:
1)配置-static -debug -opensource
2)nmake sub-src但是在这一步中我有一些错误,比如
D:\ qt \ bin \ rcc.exe -name mimetypes D:\ qt-everywhere-opensource-src-5.0.1 \ qtbase \ src \ corelib \ mimetypes \ mimetypes.qrc -o .rcc \ debug_static \ qrc_mimetypes.cp p “D:\ qt \ bin \ rcc.exe”未被识别为内部或外部命令, 可操作程序或批处理文件。 NMAKE:致命错误U1077:'D:\ qt \ bin \ rcc.exe':返回代码'0x1' 停止。 NMAKE:致命错误U1077:'“C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ BIN \ nmake.exe“':返回代码'0x2' 停止。 NMAKE:致命错误U1077:'cd':返回代码'0x2' 停止。 NMAKE:致命错误U1077:'cd':返回代码'0x2' 停止。
我该怎么办?
答案 0 :(得分:1)
在尝试编译Qt 5.x之前,您可能需要安装一些库(取决于您要编译的模块):
如果您打算使用内部使用相同库(如zlib)的库(例如Assimp),则可能必须覆盖位于 qtbase \ src \ 3rdparty 中的这些库。子目录及其最新版本。
编辑位于 qtbase 目录中的文件 configure.bat ,并注释掉第45行:
::if not exist %QTSRC%\.gitignore goto sconf
编辑位于 qtbase \ mkspecs \ win32-msvc2010 中的文件 qmake.conf (如果您使用的是Visual Studio 2010)或 qtbase \ mkspecs \ win32-msvc2012 (如果您使用的是Visual Studio 2012):
CONFIG += incremental flat precompile_header autogen_precompile_source debug_and_release debug_and_release_target
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
启动 Visual Studio命令提示符:开始>节目> Microsoft Visual Studio 20XX> Visual Studio工具。
确保 Perl.exe 的路径位于 PATH 环境变量中:PATH=%PATH%;C:\Perl\bin
(如果编译为x64,则为PATH=%PATH%;C:\Perl64\bin
。
进入 qtbase 目录:CD \Qt\5.0.1\qtbase
。
配置Qt以编译静态调试和发布版本:
configure -developer-build -opensource -confirm-license -platform win32-msvc2010 -mp -nomake examples -nomake tests -static
(如果您使用的是Visual Studio 2010)configure -developer-build -opensource -confirm-license -platform win32-msvc2012 -mp -nomake examples -nomake tests -static
(如果您使用的是Visual Studio 2012)-opengl desktop
添加到命令行,否则Qt将默认使用OpenGL / ES作为移动设备的目标。-mp
选项。
返回父目录:CD ..
。
再次配置Qt:configure -developer-build -opensource -confirm-license -platform win32-msvc20
XX -opengl desktop -mp -nomake examples -nomake tests -static
(我不确定这一步是否需要,但因为只需几秒钟......)。
编译:{{1}}。
另一种编译方法是使用jom并指定要使用的CPU核心数:nmake
。
您将在 qtbase \ lib 文件夹中找到已编译的静态库,以及要包含在 qtbase \ include 子目录中的文件。
要使用它们,您必须在Visual C ++项目中use static run-time libraries(C:\Qt\jom\jom.exe -j #NUMBER_OF_CORES#
或/MT
)。