出于探索,尝试在vs2010环境下编译了qbittorrent,下面将编译的方法和步骤写在这里,当作一个总结和梳理,也为以后留一个copy。
注:本文假定已经安装了vs2010,并且是非Express版。
**********************************************************************
本文的安装环境如下:
操作系统版本:win7 sp1 x86
vs版本:vs2010 ultimate版
QT版本:4.8.0
boost库版本:1.49.0
openssl版本:Win32 OpenSSL v1.0.1
libtorrent版本:libtorrent-rasterbar-0.15.10
qbittorrent版本:2.9.7
**********************************************************************
1、下载安装QTSDK,具体下载页面请google或是百度。
2、下载安装Qt Visual Studio Add-in,下载地址请google或是百度,注意是下载for vs2010版的。
3、编译安装Qt到vs2010,以便可以使用Qt的库,开发Qt项目(以下方法来自网络,具体路径或是版本参考本地环境,图片也来自网络):
(1)、进入开始菜单Microsoft Visual Studio 2010,Visual Studio Tools,Visual Studio Command Prompt (2010),需要注意的是,这里面必须是使用Visual Studio Command Prompt (2010),不能使用CMD的Dos窗口;
(2)、进入Qt的安装目录后,执行CD Qt,进入Qt的根目录;
(3)、运行命令 configure -platform win32-msvc2010,o(选择opensource模式)回车,Y(同意license)回车;
(4)、接着就会自动配置Qt的编译环境,等配置结束后,运行nmake,回车,Qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上(我的电脑配置较差,所以用了近10个小时);
(5)、配置Visual Studio 2010的Qt开发环境(Visual Studio 2010最好是英文版本,Qt对Visual Studio 2010中文版本可能支持的不好)等Qt编译好后就可以配置Visual Studio 2010的开发环境了,进入Visual Studio 2010,选择Qt菜单,Qt Option,进入下图界面;
点击Add,添加Qt的安装目录,并取名字,我这里使用Qt的发现版本最为名称,选择OK后即可。
(6)、新建或者导入Qt项目
可以通过一般创建VS项目的方式创建Qt的项目,也可以通过菜单栏的Qt来导入Qt工程。
(7)、我在编译过程中遇到的问题
A、类似于下面这个错误(下面的信息摘自网络,自己的木有备份,但是大体是差不多的)
01.api\qscriptextensionplugin.h(43): Error: Undefined interface
02.NMAKE : fatal error U1077: 'C:\Qt\2009.05\qt\bin\moc.exe' : return code '0x1'
03.Stop.
04.NMAKE : fatal error U1077: '"d:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
05.\nmake.exe"' : return code '0x2'
06.Stop.
07.NMAKE : fatal error U1077: 'cd' : return code '0x2'
08.Stop.
api\qscriptextensionplugin.h(43): Error: Undefined interface
NMAKE : fatal error U1077: 'C:\Qt\2009.05\qt\bin\moc.exe' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"d:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
解决方法如下(摘自网络):
将以下两个目录下的这两个文件删除
qt/src/script/tmp/moc/debug_shared/mocinclude.tmp
qt/src/script/tmp/moc/release_shared/mocinclude.tmp
然后继续编译。
B、类似于下面这个错误(下面的信息摘自网络,自己的木有备份,但是大体是差不多的,是出在编译webkit核的时候)
D:\tools\Qt\2010.05\qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\moc_Sock
etStreamHandlePrivate.cpp(97) : error C2065: “QSslError”: 未声明的标识符
D:\tools\Qt\2010.05\qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\moc_Sock
etStreamHandlePrivate.cpp(97) : error C3861: “socketSslErrors”: 找不到标识符
正在生成代码...
NMAKE : fatal error U1077: “"D:\tools\Microsoft Visual Studio 10.0\VC\BIN\cl.EX
E"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “"D:\tools\Microsoft Visual Studio 10.0\VC\BIN\nmake
.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
解决方法如下(摘自网络):
qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\mocinclude.tmp
qt\src\3rdparty\webkit\WebCore\tmp\moc\release_shared\mocinclude.tmp
删除之后可以继续编译(重新执行nmake命令)。
C、出现如下错误
DefaultLocalizationStrategy.cpp(327) : “error C2001: newline in constant” in building 4.8.0
解决方法:
将系统区域设置成为“英国”。具体方法:控制面板->时钟、语言和区域->更改位置->管理(标签)->更改系统区域设置...->英语(美国)。然后确定,然后重启电脑。重启后继续编译(nmake命令)。
(8)、注意将Qt安装路径的bin目录添加到系统的PATH环境变量(注意添加是单击"编辑...")。
4、编译boost库、编译libtorrent库、将OpenSSL根目录下的include文件夹中的openssl文件夹拷贝到Msvc的include文件夹中(C:\Program Files\Microsoft Visual Studio 10.0\VC\include)
详见:网上具体文章如下
http://www.2cto.com/os/201107/96607.html
5、编辑winconf.pri和winconf-msvc.pri文件,添加boost、libtorrent、OpenSSL的相应路径
注:这里也可以将boost、libtorrent、OpenSSL的相应路径添加的vs2010项目属性对应的include目录和lib目录。
6、在vs2010中打开qbittorrent项目,编译。
6.1、可能遇到的编译错误及相应的修改方法:
A、如果编译的时候因为有“无穷大”的字符不能识别,或者把“无穷大”改成可识别的数字,例如100,或者系统设成英文Locate就可以编过(设置方法3中(7)的C中所述)。
B、会出现如A中一样的错误提示,但定位后,错误所在行有"VERSION",将VERSION修改为qbittorrent的版本号,如“v2.9.7”。
7、编译成功后点击“运行”,可以启动qbittorrent。
如有问题,欢迎大家留言!