feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

qmake

Posted on 2010-04-07 19:39  feisky  阅读(2541)  评论(0编辑  收藏  举报

在手工连编 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库的类型了。

无觅相关文章插件,快速提升流量