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