编译与使用Qt4,Visual Studio Express 2008

这篇博客详细记录了如何在Windows环境下编译和使用Qt4.5开源版本,以及如何在Visual Studio 2008 Express中创建和配置Qt工程。博主分享了在编译Qt时遇到的Webkit错误和XMLpatterns问题的解决办法,并给出了在Qt工程中导入第三方库的两种方法,最后讨论了链接第三方库时遇到的外部符号错误及其解决方案。

给自己备忘的。

一、Qt版本

我现在用的是4.5.2。好像前段时间4.6出来了。。一直想找个轻量、好用、简单、快速的UI库。实话实说Qt也不是很满足我的要求,不过还是比较好用的,运行库打包10m左右,加壳压缩一下3~5m左右,也还是在接受范围之内。

二、Qt安装

下载的opensource的Qt安装包。

在win32平台下自带mingw,用gcc编译。可以配合Eclipse+CDT开发。。不过开发效率实在是。。唉。。。折腾了一段时间——放弃。

在linux平台下,有deb包下载的,好像。。我记得我是既从Ubuntn repos上down过,也自己手动下载安装过,但还是窘于IDE。唉,一说到是IDE阻止自己我就感觉脸红呀。

以上两类,Nokia都提供了预编译的包,安装后配置include和library即可。。很速度的。

 

在下载4.5的时候,看到下载链接下一行小字说opensource版的不支持visual studio。其实是可以的。下面粘下网上的方法:

QT与Visual Studio2008的集成2009年03月26日 星期四 12:49 P.M.
★第一步★

假设现在手头什么都没有,那么你至少要准备下面列举的这些东西.

★Qt (qt-sdk-win-opensource-2009.01.1.exe)

下载链接:http://www.qtsoftware.com/products

★VS2008(微软免费提供Express版本下载.只不过不是完全下载安装包,是在线安装的)

下载链接:http://www.microsoft.com/express/

★qt-vs-addin-1.0.0-rc1.exe(可选)

★qt-vsintegration-1.4.0.exe(可选)


★第二步★

1.安装Qt

2.设置环境变量:QTDIR为安装文件夹,PATH增加%QTDIR%/bin

注意:安装文件夹并非指定Qt安装之后的文件夹,而应该是Qt目录下的qt文件夹(拥有Makefile文件的)

3.「开始」菜单/程序/Microsoft Visual Studio 2008/Visual Studio Tools下面有一个Visual Studio 2008 Command Prompt.使用这个命令行,设定当前目录为QTDIR,然后运行命令:

configure -platform win32-msvc2008

这个过程可能持续20分钟左右.

4.继续运行命令:

nmake sub-src

注意:该命令只编译Qt库.如果需要全部的Qt包,不需要sub-src.

这个过程可能持续4个小时左右.

5.上一条命令可能在中间会有很多的warning.不用管,马上运行:

nmake clean

这条命令主要是去处临时文件,可以节省空间.

三、Qt4.5编译问题

如果是完全编译(寡nmake,而不是nmake sub-src)上面编译时会出现一个有过Webkit的错误,导致编译中断。

我记得是到3rdparty文件下Webkit下面的temp文件夹底下删个过时的moc开头的文件。。唉,忘记咯。等过两天编译4.6的时候看看这个问题还在不。

此外,还报过找不到xmlpatterns.exe的情况。重新nmake下xmlpatterns.exe就生成了。

四、在VS2008中新建Qt工程

先照抄网上的:

Qt与VS2008 Express集成
1)Fire it up, and go to “Tools > Options > Projects and Solutions > VC++ Directories”. Add “$(QTDIR)/include” to the “Include files”, and “$(QTDIR)/lib” to the “Library files” drop-down lists respectively.
2)Create a new project (”File > New > Project > General > Makefile Project”) named “HelloQt”.
3)Go to “Project > Properties > Configuration Properties > Nmake” and enter the following in the build command line “qmake -project && qmake && nmake release-all”. Also enter “release/HelloQt.exe” in the “Output” field. (You may enter corresponding debug versions here as well).

 

不过哦。感觉qmake还是蛮好用的。多看看手册,基本就可以满足需求咯。所以上面提到的那个qmake -project 我基本不加到命令里面的。

五、在Qt工程中导入其他库

两个方法

1)用qmake命令:qmake -tp vc,把上面建的Qt项目转成vs工程。可以看看qmake做了那些设置,然后以vs工程的方式加库。

2)手写Qt的pro文件。当然这样就得去掉(四)中的qmake -project。我推荐这个。

无论哪种方法,都有可能遇到下面的问题。

六、添加第三方库到Qt工程中遇到的问题

编译并扩展log4cplus后,log4cplus的单元测试都能通过,就是在添加到Qt工程中时老报error LNK2019: unresolved external symbol错误。。

我本来一直做Java的,C++忘的都差不多咯,所以我开始一直琢磨是不是自己lib文件没设对。都对,无解。

偶尔google到解法

 

BS下公司,不让连外网导致只能用百度开百度cache;BS下百度,又啥都没搜到。

 

下面是网上对该问题的解释:

“为什么会出现这种错误呢?是因为VC6以及VS2003在wchar_t内置的选项上默认为No,而VS2005在此选项上默认为Yes,我今天使用VS2005打开原来VS2003建立的BaseClass项目,使得选项为No,这样编译出来的基类库的选项就是No了。
    然后,在使用VS2005新建DirectShow程序时,默认选项为Yes,这样程序与基类的选项就不一致了,在函数的参数涉及到wchar_t时,程序的链接会由于生成的名字不同而导致链接不上(同样是wchar_t,链接时lib文件的符号是不同的)。
    弄清楚这个问题之后,此选项的选择就无所谓了,只要工程和Lib在该选项上一致即可。”

 

我猜老外的意思是修改了qmake.conf之后重新编译Qt库。我觉得吧,让wchar_t作为Build-in类型没啥意思。所以我选择不动Qt库,把自己项目的该选项置为No。主要自己项目比Qt小,重编译快。呵呵。

 

 

暂时就这些。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值