qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者生成。项目文件通常很简单,但是如果需要它是非常完善的。不用修改项目文件,qmake也可以为为Microsoft Visual Studio生成项目。

Qmake是用来为不同的平台的开发项目创建makefile的Trolltech开发一个易于使用的工具。qmake简化了makefile的生成,所以为了创建一个makefile只需要一个只有几行信息的文件。qmake可以供任何一个软件项目使用,而不用管它是不是用Qt写的,尽管它包含了为支持Qt开发所拥有的额外的特征。

Qmake实际问题解决(cmake报错)  Qmake 第1张

qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者生成。项目文件通常很简单,但是如果需要它是非常完善的。不用修改项目文件,qmake也可以为为Microsoft Visual Studio生成项目。

现在Qt版本已经到4.5.0了,最近一直在正常使用,由于今天装了一下KDE的开发环境,如KDevelop,kdelibs...

发现qmake出现问题:

  1. $qmake-project
  2. $qmake
  3. $make

产生错误如下:

  1. viewplaincopytoclipboardprint?
  2. g++-c-pipe-g-Wall-W-O2-D_REENTRANT-DQT_NO_DEBUG-DQT_THREAD_SUPPORT-DQT_SHARED-DQT_TABLET_SUPPORT
  3. -I/usr/share/qt3/mkspecs/default-I.-I.-I/usr/include/qt3-omain.omain.cppmain.cpp:1:24:错误:QApplication:没有该文件或目录
  4. main.cpp:Infunction‘intmain(int,char**)’:
  5. main.cpp:5:错误:‘QApplication’在此作用域中尚未声明
  6. main.cpp:5:错误:expected`;'before‘app’
  7. main.cpp:18:错误:‘app’在此作用域中尚未声明
  8. main.cpp:Atglobalscope:
  9. main.cpp:3:警告:未使用的参数‘argc’
  10. main.cpp:3:警告:未使用的参数‘argv’
  11. make:***[main.o]错误1
  12. g++-c-pipe-g-Wall-W-O2-D_REENTRANT-DQT_NO_DEBUG-DQT_THREAD_SUPPORT-DQT_SHARED-DQT_TABLET_SUPPORT
  13. -I/usr/share/qt3/mkspecs/default-I.-I.-I/usr/include/qt3-omain.omain.cppmain.cpp:1:24:错误:QApplication:没有该文件或目录
  14. main.cpp:Infunction‘intmain(int,char**)’:
  15. main.cpp:5:错误:‘QApplication’在此作用域中尚未声明
  16. main.cpp:5:错误:expected`;'before‘app’
  17. main.cpp:18:错误:‘app’在此作用域中尚未声明
  18. main.cpp:Atglobalscope:
  19. main.cpp:3:警告:未使用的参数‘argc’
  20. main.cpp:3:警告:未使用的参数‘argv’
  21. make:***[main.o]错误1

仔细一看,QApplication怎么会没有该文件?为什么make输出的编译命令会跟qt3相关,本人一直在使用qt4

  1. viewplaincopytoclipboardprint?
  2. $qmake-v
  3. $Qmakeversion:1.07a(Qt3.3.8b)
  4. $QmakeisfreesoftwarefromTrolltechASA.
  5. $qmake-v
  6. $Qmakeversion:1.07a(Qt3.3.8b)
  7. $QmakeisfreesoftwarefromTrolltechASA.

怎么qmake的版本变成了qt3了

  1. $ls-lqmake
  2. $lrwxrwxrwx1rootroot232009-04-0714:45/usr/bin/qmake->/etc/alternatives/qmake

查看qmake的信息,它是一个链接指向的是/etc/alternatives/qmake

  1. $ls-l/etc/alternatives/qmake
  2. $lrwxrwxrwx1rootroot182009-04-2416:42/etc/alternatives/qmake->/usr/bin/qmake-qt3

终于找到的根源,原来qmake被设置成了qmake-qt3

强行修改

  1. viewplaincopytoclipboardprint?
  2. $rm/etc/alternatives/qmake
  3. $ln-s/usr/bin/qmake-qt4/etc/alternatives/qmake
  4. $qmake-v
  5. $QMakeversion2.01a
  6. UsingQtversion4.5.0in/usr/lib
  7. $rm/etc/alternatives/qmake
  8. $ln-s/usr/bin/qmake-qt4/etc/alternatives/qmake
  9. $qmake-v
  10. $QMakeversion2.01a
  11. UsingQtversion4.5.0in/usr/lib

OK!

小结:Qmake实际问题解决的内容介绍完了,qmake环境变量,在qt/mkspecs中的每一个目录里面,都有一个包含了平台和编译器特定信息的qmake.conf文件。这些设置适用于你要使用qmake的任何项目,请不要修改它,除非你是一个专家。例如,假如你所有的应用程序都必须和一个特定的库连接,你可以把这个信息添加到相应的qmake.conf文件中。,最后希望本文对你有所帮助!

转载请说明出处
知优网 » Qmake实际问题解决(cmake报错)

发表评论

您需要后才能发表评论