Qt中根據(jù)不同版本號(hào)使用不同源碼
qmake是用來(lái)為不同的平臺(tái)的開(kāi)發(fā)項(xiàng)目創(chuàng)建makefile的Trolltech開(kāi)發(fā)一個(gè)易于使用的工具。qmake簡(jiǎn)化了makefile的生成,所以為了創(chuàng)建一個(gè)makefile只需要一個(gè)只有幾行信息的文件。qmake可以供任何一個(gè)軟件項(xiàng)目使用,而不用管它是不是用Qt寫(xiě)的,盡管它包含了為支持Qt開(kāi)發(fā)所擁有的額外的特征。
qmake基于一個(gè)項(xiàng)目文件這樣的信息來(lái)生成makefile。項(xiàng)目文件可以由開(kāi)發(fā)者生成。項(xiàng)目文件通常很簡(jiǎn)單,但是如果需要它是非常完善的。不用修改項(xiàng)目文件,qmake也可以為為Microsoft Visual Studio生成項(xiàng)目。眾所周知,qmake里是不提供
- #if (QT_VERSION >= QT_VERSION_CHECK(4, 5, 0))
- // …
- #endif
這種語(yǔ)法的qmake的語(yǔ)法是
條件{
…執(zhí)行的動(dòng)作1…
}else{
…執(zhí)行的動(dòng)作2…
}
所以如果要執(zhí)行根據(jù)版本控制的代碼可以用
- greaterThan(QT_MAJOR_VERSION, 4)|equals(QT_MAJOR_VERSION,4){
- greaterThan(QT_MINOR_VERSION, 5)|equals(QT_MINOR_VERSION, 5){
- message("bla,bla,bla ....")
- }
- }else{
- message("pla,pla,pla ....")
- }
不過(guò)需要注意的是,greaterThan和equals是在qmake代碼里沒(méi)有公布的,詳細(xì)需要看qmake的源代碼
- qt/qmake/project.cpp
- if(!qmake_test_functions) {
- qmake_test_functions = new QMap;
- qmake_test_functions->insert("requires", T_REQUIRES);
- qmake_test_functions->insert("greaterThan", T_GREATERTHAN);
- qmake_test_functions->insert("lessThan", T_LESSTHAN);
- qmake_test_functions->insert("equals", T_EQUALS);
小結(jié):在Qt工程文件中根據(jù)不同版本號(hào)使用不同源碼的內(nèi)容介紹完了,簡(jiǎn)單的介紹了一下,希望對(duì)你有幫助吧。