qmake

简介:

在手工连编 Qt 之前,下面这些环境变量必须被设置:

1  QMAKESPEC   
这个必须设置为你所使用的系统的平台和编译器的组合。   
举例来说,加入你使用的是Windows和Microsoft Visual Studio,你应该把环境变量设
置为win32-msvc。如果你使用的是Solaris和g++,你应该把环境变量设置为solaris-g++。 
当你在设置 QMAKESPEC 时,可以从下面的可能的环境变量列表中进行选择: 
aix-64 hpux-cc irix-032 netbsd-g++ solaris-cc unixware7-g++ aix-g++ hpux-g++ 
linux-cxx openbsd-g++ solaris-g++ win32-borland aix-xlc hpux-n64 linux-g++ 
openunix-cc sunos-g++ win32-g++ bsdi-g++ hpux-o64 linux-icc qnx-g++ tru64-cxx 
win32-msvc dgux-g++ hurd-g++ linux-kcc reliant-64 tru64-g++ win32-watc freebsd-g++ 
irix-64 macx-pbuilder reliant-cds ultrix-g++ win32-visa hpux-acc irix-g++ macx-g++ 
sco-g++ unixware-g hpux-acc irix-n32 solaris-64 unixware7-cc 
2  QTDIR   
这个必须设置到Qt被(或者将被)安装到的地方。比如,c:\qt和/local/qt。 
一旦环境变量被设置到qmake目录,$QTDIR/qmake,比如C:\qt\qmake,现在根据你的编译
器运行make或者nmake。

qmake的使用

一般情况下只需要运行下面的几句就可以了:
qmake -project 
qmake
make

工程选项.pro:

HEADERS 这一行中通常用来指定为这个应用程序创建的头文件

SOURCES 这一行指定了实现应用程序的源程序文件
CONFIG这一行是用来告诉qmake关于应用程序的配置   CONFIG += qt warn_on release 
  TARGET = helloworld 指定目标的名字
  特定平台的源文件:
   win32 { 
       SOURCES += hello_win.cpp 
    } 
    x11 { 
       SOURCES += hello_x11.cpp 
    } 
    QMAKESPEC 环境变量 在qt/mkspecs中的每一个目录里面,都有一个包含了平台和编译器特定信息的qmake.conf文件。
    “#”注释 你可以为项目文件添加注释。注释由“#”符号开始,一直到这一行的结束。
模板  

TEMPLATE = app 
模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择: 
     app -  建立一个应用程序的 makefile。这是默认值,所以如果模板没有被指定,这个
将被使用。 
    lib -  建立一个库的 makefile。 
    vcapp -  建立一个应用程序的 Visual Studio 项目文件。 
    vclib -  建立一个库的 Visual Studio 项目文件。 
    subdirs -  这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目
文件生成 makefile 并且为它调用 make 的 makefile。

CONFIG 变量 
配置变量指定了编译器所要使用的选项和所需要被连接的库。配置变量中可以添加任何东
西,但只有下面这些选项可以被 qmake 识别。 
下面这些选项控制着使用哪些编译器标志: 
?     release -  应用程序将以 release 模式连编。如果“debug”被指定,它将被忽略。 
?     debug -  应用程序将以 debug 模式连编。 
?     warn_on -  编译器会输出尽可能多的警告信息。如果“warn_off”被指定,它将被忽略。 
?     warn_off -  编译器会输出尽可能少的警告信息。 
下面这些选项定义了所要连编的库/应用程序的类型: 
?     qt -  应用程序是一个 Qt 应用程序,并且 Qt 库将会被连接。 
?     thread -  应用程序是一个多线程应用程序。 
?     x11 -  应用程序是一个 X11 应用程序或库。 
?     windows -  只用于“app”模板:应用程序是一个 Windows 下的窗口应用程序。 
?     console -  只用于“app”模板:应用程序是一个 Windows 下的控制台应用程序。 
?     dll -  只用于“lib”模板:库是一个共享库(dll)。 
?     staticlib -  只用于“lib”模板:库是一个静态库。 
?     plugin -  只用于“lib”模板:库是一个插件,这将会使 dll 选项生效。 
例如,如果你的应用程序使用 Qt 库,并且你想把它连编为一个可调试的多线程的应用程序,
你的项目文件应该会有下面这行: 
    CONFIG += qt thread debug 
注意,你必须使用“+=”,不要使用“=”,否则qmake就不能正确使用连编Qt的设置了,比如
没法获得所编译的Qt库的类型了。

本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/04/07/1706642.html,如需转载请自行联系原作者


相关文章
|
5月前
|
编译器 Linux 调度
makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
makfile的编译选项:CFLAGS、CPPFLAGS、LDFLAGS、LIBS
350 0
|
4月前
Clion-2023.1.4配置CMake-3.25.3
Clion-2023.1.4配置CMake-3.25.3
Cmake生成指定vs版本的工程文件
本文简单总结了使用 cmake 生成 visual studio 工程文件的过程
|
11月前
|
编译器
[√]cmake 编译选项
[√]cmake 编译选项
64 0
|
11月前
|
Shell C++ Windows
[√]尝试使用cmake编译使用vld
[√]尝试使用cmake编译使用vld
94 0
|
编译器 Linux vr&ar
MinGW编译静态库
MinGW编译静态库
359 0
|
编译器 C语言 C++
用msys2与msvc编译FFmpeg
本文讲解如何使用 msys2 + msvc 来编译 FFmpeg ,msys2 的安装请看 《MSYS2介绍》。
286 0
|
XML 并行计算 Linux
MSVC编译静态库
MSVC编译静态库
314 0
|
编译器 Linux C语言
MinGW编译动态库
MinGW编译动态库
512 0
|
Linux
LINUX编译cmake
LINUX编译cmake
93 0