Qt编程常见编译错误及解析

转载自:http://blog.chinaunix.net/space.php?uid=21454189&do=blog&id=442244


0.预备知识:编译-运行一个c/c++程序时,编译器只默认的去连接c库,而很多的库不是标准库

1linux#inlude 命令默认头文件搜索路径为/usr/includeqt编程要用到的库qapplication库在usr/lib/qt-3.1/include下所以必须要用I增加路径。如 g++ -hello hello.cpp –I/usr/lib/qt-3.1/include -I表示除了收索标准库,还要收索指定的额外头文件路径。

2linux下的库,动态库为.so文件静态库为.a文件,编译运行时系统默认搜索的库为/usr/lib/lib库。

linuxC库在/lib/libc.so.6路径下。

3.编译qt程序时要加上 g++ -lqt …. lib库(相当于函数库集);

-I:表示头文件额外搜索路径

-L:表示要额外lib搜索路径。

-l:表示表示指定具体的要连接(用到)的库(–lqt表示连接qt库)(qt不在默认lib库路径下,而在/usr/lib/qt-3.1/lib下,所以必须额外指定)

4.为了简化编译时的指定路径和库的麻烦,可以设置环境变量:

CPLUS_INCLUDE_PATH:设置头文件搜索路径。

例如:export CPLUS_INCLUDE_PATH=/usr/lib/qt-3.1/include //

LD_LIBRARY_PATH:设置动态库搜索路径。

例如:export LD_LIBRARY_PATH =/usr/lib/qt-3.1/lib //注意qt比较特殊直接用LIBRARY_PAHT

在终端下输入 env set命令可以显示环境变量。

5qt下编译可用简便方法

运行qmake –project 产生一个pro工程文件。

运行 qmake 产生Makefile

运行 make 产生可执行程序

6.查找一个文件用命令:which qmake

7. qwidget.h是可视化窗口类。

8.编译常见错误:undefined reference to….没找到实现函数,相当于有头文件但没有具体实现里面的函数。

9qt4的安装用configure –no-openssl ……yes

10、当用到槽的时候由于c++中没有槽的概念,就要用moc进行处理生成c++文件

qmake进行编译qt程序时的执行过程(以原程序myslot.cpp为例):

g++ -c –o myslot.o myslot.cpp

moc myslot.h –o moc_myslot.cpp

g++ -c –o moc_myslot.o moc_myslot.cpp

g++ -o 3-2 myslot.o moc_myslot.o –lqt


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值