如何使qmake在Windows上生成的Makefile? (nmake和mingw-make)

时间:2019-04-29 23:50:25

标签: qt makefile qt-creator qmake nmake

操作系统:Windows 10,x64

我有一个qt控制台项目的简单演示,它只是打印了hello world。 可以正确构建和运行该项目(使用MSVC套件),但是我想将过程分开。

首先,我在Qt Creator中的项目的右键菜单中单击“ execute qmake”,在发布和调试目录中获得了一个make文件。

build-hello-Desktop_Qt_5_12_3_MSVC2017_64bit-Release \ makefile

打开cmd,cd到此目录,然后故事结束。 如果使用nmake,则会收到错误 C1083 ,该错误告诉我找不到stdio.h 如果我在Windows或mingw-make32上使用make,我仍然会遇到缺少分隔符的错误。

我有2个问题:

1。有人可以全面说明如何使用mingw-make32和nmake来制作此makefile吗?

2。qmake生成的makefile看起来非常复杂且难以辨认,与教程中的makefile不同。它与普通的makefile一样,还是很特殊?

我进行了很多搜索,但仍然可以获得明确的解决方案,因此请帮忙。

Makefile如下:

#############################################################################
# Makefile for building: hello
# Generated by qmake (3.1) (Qt 5.12.3)
# Project:  ..\name\hello.pro
# Template: app
# Command: C:\Qt\Qt5.12.3\5.12.3\msvc2017_64\bin\qmake.exe -o Makefile ..\name\hello.pro -spec win32-msvc "CONFIG+=qtquickcompiler"
#############################################################################

MAKEFILE      = Makefile

EQ            = =

first: release
install: release-install
uninstall: release-uninstall
QMAKE         = C:\Qt\Qt5.12.3\5.12.3\msvc2017_64\bin\qmake.exe
DEL_FILE      = del
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
COPY          = copy /y
COPY_FILE     = copy /y
COPY_DIR      = xcopy /s /q /y /i
INSTALL_FILE  = copy /y
INSTALL_PROGRAM = copy /y
INSTALL_DIR   = xcopy /s /q /y /i
QINSTALL      = C:\Qt\Qt5.12.3\5.12.3\msvc2017_64\bin\qmake.exe -install qinstall
QINSTALL_PROGRAM = C:\Qt\Qt5.12.3\5.12.3\msvc2017_64\bin\qmake.exe -install qinstall -exe
DEL_FILE      = del
SYMLINK       = $(QMAKE) -install ln -f -s
DEL_DIR       = rmdir
MOVE          = move
SUBTARGETS    =  \
        release \
        debug

1 个答案:

答案 0 :(得分:1)

有关如何使用nmake制作此makefile的完整说明

运行visual studio命令提示符,然后在其中运行nmake而不是在通用cmd中运行nmake,因为vs命令提示符已经设置了特定的环境变量,例如include和c ++标准库的路径,其中cl.exe和link.exe无法正常工作。

这就是为什么找不到stdio.h的原因。