Qmake实际问题解决
创始人
2024-08-01 19:40:29
0

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

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

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

发现qmake出现问题:

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

产生错误如下:

  1. view plaincopy to clipboardprint?  
  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 -o main.o main.cppmain.cpp:1:24: 错误: QApplication:没有该文件或目录     
  4. main.cpp: In function ‘int main(int, char**)’:     
  5. main.cpp:5: 错误: ‘QApplication’在此作用域中尚未声明     
  6. main.cpp:5: 错误: expected `;' before ‘app’     
  7. main.cpp:18: 错误: ‘app’在此作用域中尚未声明     
  8. main.cpp: At global scope:     
  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 -o main.o main.cppmain.cpp:1:24: 错误: QApplication:没有该文件或目录  
  14. main.cpp: In function ‘int main(int, char**)’:  
  15. main.cpp:5: 错误: ‘QApplication’在此作用域中尚未声明  
  16. main.cpp:5: 错误: expected `;' before ‘app’  
  17. main.cpp:18: 错误: ‘app’在此作用域中尚未声明  
  18. main.cpp: At global scope:  
  19. main.cpp:3: 警告: 未使用的参数‘argc’  
  20. main.cpp:3: 警告: 未使用的参数‘argv’  
  21. make: *** [main.o] 错误 1 

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

  1. view plaincopy to clipboardprint?  
  2. $qmake -v     
  3. $Qmake version: 1.07a (Qt 3.3.8b)     
  4. $Qmake is free software from Trolltech ASA.    
  5. $qmake -v  
  6. $Qmake version: 1.07a (Qt 3.3.8b)  
  7. $Qmake is free software from Trolltech ASA. 

怎么qmake的版本变成了qt3了

  1. $ls -l qmake  
  2. $lrwxrwxrwx 1 root root 23 2009-04-07 14:45 /usr/bin/qmake -> /etc/alternatives/qmake 

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

  1. $ls -l /etc/alternatives/qmake  
  2. $lrwxrwxrwx 1 root root 18 2009-04-24 16:42 /etc/alternatives/qmake -> /usr/bin/qmake-qt3 

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

强行修改

  1. view plaincopy to clipboardprint?  
  2. $rm /etc/alternatives/qmake     
  3. $ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake     
  4. $qmake -v     
  5. $QMake version 2.01a     
  6. Using Qt version 4.5.0 in /usr/lib    
  7. $rm /etc/alternatives/qmake  
  8. $ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake  
  9. $qmake -v  
  10. $QMake version 2.01a  
  11. Using Qt version 4.5.0 in /usr/lib 

OK!

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...