再三思量还是不格掉windows,在portable ubuntu上学习Qt。安装起来才发现有Qt3和Qt4两个版本,而且不是源码兼容的。搜了搜Qt教程,中文的竟然大都是2.x甚至1.x的,看来必须要啃啃英文了。
估计嵌入式系统里Qt3用的比较多但我一向喜欢用新东西(否则也不会从debian跳到ubuntu),反正ubuntu装软件方便就都装了吧。开始搜索libqt,搜到的都装。
写了个Hello Qt结果编译都过不了,摸索着设置了头文件又卡在链接上,想想也是,GUI程序怎么可能不链特定库呢。上网搜搜发现要qmake设置:
先建一个目录,把你的源码放进去,再qmake -project为该目录生成配置文件,自己写也可。然后qmake生成Makefile,其中包含了和qmake版本相对应的头文件路径、库文件路径以及编译器、链接器设置和库文件。qmake默认是qmake-qt3,用qmake-qt4也可,但不能混用,尤其时编译链接时。换了qmake最好make clean一下。
链接时需要QtGui QtCore,如果没有再搜索qt3 qt4,安装一下开发文件。不知为什么,qmake-qt4可以成功编译运行,qmake-qt3的配置就是不行,不知是不是ubuntu转向qt4没有维护qt3。
总之安装一堆东西之后,用qmake-qt4配置一下项目文件,然后就可以make运行了。
================================我是日期分隔线===================================
一晚没睡好,起来越想越觉得不对劲,看看qmake-qt3默认生成的Makefile,链接/usr/X11R6/lib里的 Xext X11 m pthread,我的ubuntu上根本没有/usr/X11R6/lib目录,在/usr/lib里倒是有这3个库文件。用nm看看没有link时缺失的符号,apt-cache search libqt3定位到libqt3-mt-dev,再dpkg -L libqt3-mt-dev一下定位到libqt-mt,修改Makefile,库文件路径/usr/lib,库文件qt-mt,make clean all成功。后来试了一下链qui也可以。
各linux发行版之间确实该有一个规范了,总这样下去linux始终摆脱不了难用的诟病。
阅读(806) | 评论(0) | 转发(0) |