Qt之命令行编译(nmake)

简述

前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World。

下面分享如何使用命令行来编译Qt程序。当然,MSVC和MinGW的配置和编译过程相差无几。

  • 简述
  • 新建
  • 打开命令行
  • 生成 pro
  • qmake
  • nmake
  • 运行
  • 注意事项

新建

新建一个”HelloWorld.cpp”文件,编写代码:

#include <QApplication>
#include <QLabel>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QLabel label("Hello World!");
    label.setAlignment(Qt::AlignCenter);
    label.resize(400, 300);
    label.show();
    return app.exec();
}

保存到指定位置(示例位置为”E:\HelloWorld”)。

打开命令行

选择”Visual Studio Tools”,打开命令行。

生成 pro

切换到项目目录下,执行命令:

qmake -project QT+=widgets

切记后面加上指定的模块”QT+=widgets”,这相当于Visual Studio的Qt插件中Qt Project Settings里勾选了Qt modules的widgets模块。

这时,我们会发现项目目录下会生成.pro项目文件。

可以使用Notepad打开查看里面的内容。

######################################################################
# Automatically generated by qmake (3.0) ?? 11? 20 22:58:54 2015
######################################################################

QT+=widgets          #项目依赖的模块qmake -project QT+=widgets指定
TEMPLATE = app       #app代表可执行程序,及生成一个.exe
TARGET = HelloWorld  #可执行程序的名称HelloWorld.exe
INCLUDEPATH += .     #包含路径为当前路径

# Input
SOURCES += HelloWorld.cpp  #项目包含的源文件

qmake

执行:

qmake

这时,项目目录下会生成一个debug和一个release目录、以及makefile文件。

nmake

执行:

nmake Debug Release

编译完成后,debug和release文件夹下面会生成了对应的exe。

运行

  • 方式一:进入debug或release目录,直接双击exe。
  • 方式二:命令行cd release,HelloWorld.exe

超级简单,有木有,O(∩_∩)O哈哈~。

注意事项

  • 使用cmd命令行,提示:

    ‘nmake’不是内部或外部命令,也不是可运行的程序或批处理文件。

    解决方式:

    1. 在环境变量中添加nmake的路径(Path=D:\Program Files\Microsoft Visual Studio 12.0\VC\bin)。
    2. 运行cmd后,将”D:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsall.bat”拖拽进去,然后回车,继续运行上述步骤。
  • 双击运行程序,提示:

    无法启动此程序,因为计算机中丢失Qt5Core.dll。尝试重新安装该程序以解决此问题。

    解决方式:请参考:Qt环境搭建(Visual Studio)一节中”添加环境变量”。

时间: 2024-08-29 13:32:04

Qt之命令行编译(nmake)的相关文章

命令行编译Qt程序(nmake)

简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和MinGW的配置和编译过程相差无几. 简述 编译Qt程序 注意事项 编译Qt程序 1.新建一个"HelloWorld.cpp"文件,编写代码: #include <QApplication> #include <QLabel> int main(int argc,ch

msvc交叉编译:使用vcvarsall.bat设置命令行编译环境

一直以来我只知道vc设置命令行编译环境的批处理命令是%VS140COMNTOOLS%/Common7/Tools下的vsvars32.bat,(%VS140COMNTOOLS%为定义vs2015公共工具程序位置的环境变量,命令行窗口输入set就能找到,vs2010的对应定义为%VS100COMNTOOLS%) 微软的官网上有这个命令的说明: https://technet.microsoft.com/zh-cn/library/1700bbwd.aspx 但在执行这个命令生成的命令行环境下用nm

用命令行编译java并生成可执行的jar包

用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: package test; import java.awt.*; import javax.swing.*; //更多包的导入... class NotePadFrame extends JFrame { //主界面的设计... } //其他相关代码... public class CardLayo

ide-c程序用cmd命令行编译链接的exe跟在IDE中生成的一样么?

问题描述 c程序用cmd命令行编译链接的exe跟在IDE中生成的一样么? 就是用cl命令生成的exe,和visual c++6.0的对比,是否一样,如果不一样怎么让他们一样? 解决方案 主要是一些编译选项,你cl命令行需要自己跟VC所配置的编译选项一致. 解决方案二: 你可以写一个小程序: void main(int argc, char ** args) { for (int i = 0; i < argc; i++) cout << args[i] << endl; sy

基于命令行编译打包phonegap for android应用

也许你习惯了使用Eclipse编译和打包Android应用.不过,对于使用html5+js开发的phonegap应用,本文建议你抛弃Eclipse,改为使用命令行模式,绝对的快速和方便. 一直以来,Eclipse+ADT是广大Android应用开发者的必备工具,毋庸置疑,Ecplise在开发Android原生应用方面有着几乎不可替换的位置.Phonegap是一个已经不算是新鲜事物的东西了.PhoneGap是一个开源的开发框架,使用HTML,CSS和JavaScript来构建跨平台的的移动应用程序

java-ofbiz在命令行编译时unable to access jarfile *.jar

问题描述 ofbiz在命令行编译时unable to access jarfile *.jar 2.1 命令行原始方式编译 进入ofbiz根目录之后执行java -jar framework/base/lib/ant-launcher-1.7.1.jar -lib framework/base/lib/ant(需要设置path环境变量) 2.2 命令行批处理方式编译 进入ofbiz 根目录之后window环境执行ant或者ant.batlinux环境执行./ant .(需要设置JAVA_HOME

Delphi 命令行编译指南

  Delphi 命令行编译指南 目录1. Command-line compiler命令行编译器2. Command-line compiler options命令行编译器选项3. Compiler directive options编译器指令选项4. Compiler mode options编译模式选项5. DCC32.CFG file编译器配置文件DCC32.CFG6. Debug options调试选项7. Directory options目录选项8. IDE command-lin

mac-Mac Pro 怎么用命令行编译x-code文件

问题描述 Mac Pro 怎么用命令行编译x-code文件 您好,Mac Pro 怎么用命令行编译x-code文件.是不是要绑定什么文件呢,谢谢啦,大神. 解决方案 mac通过命令行搜索文件 解决方案二: clang: warning: -framework Foundation: 'linker' input unused 这就是提示

关于visual studio 2015中c#的命令行编译问题

问题描述 你们好,是这样的,我想用visualstudio2015的命令提示窗口把.cs文件编译成.exe文件我的程序是这样的usingSystem;classexample_2{staticvoidMain(){Console.WriteLine("很高兴学习c#语言");}}但命令行编译不了,输出:MicrosoftWindows[版本10.0.10586](c)2015MicrosoftCorporation.保留所有权利.E:网页设计>cscexample_2.cs'cs