❶ win7 安装qt vs2010配置boost,CGAL等
一、安装cmake
1、这一步比较简单,下载安装最新版本cmake-2.8,开始如下安装
2、注意这里选择第二个选项,为所有的用户添加系统变量
3、选择安装到目录 F:\CMake 2.8,个人建议最好安装在C盘目录下。
4、安装完毕后确认一下系统变量中有没有红色框中的目录,若没有需要手动添加进去。
5、cmake安装完毕!
二、安装Boost库
1、下载最新版本,当前为boost_1_55_0
2、按 Win+R组合键输入cmd进入命令窗口:
切换当前目录为boost的安装目录(G:\boost_1_55_0),输入bootstrap.bat
3、执行完上述命令后会在安装目录下生成如下exe文件
4、继续在DOS窗口中输入bjam.exe,程序会根据你当前安装的编译环境(vs2010,vs2012,vs2013)等自动选择与之相适应的库文件和包含文件等。
此过程大概需要20分钟左右。根据下面第二个图片可以算出我的编译环境为MSVC-12.0即VS2013.
5、20分钟左右后可以看到如下界面,说明Boost库配置完成
三、安装CGAL
1、下载CGAL,这里我下载的是CGAL-4.4这个版本(当前最新的)
2、安装位数选择32位
如果选择64位进行安装,则会在以后配置完毕后出现类似“无法识别的外部符号。。。”等问题,很难进行正确配置。所以这里最好全部选择32位进行安装。
3、安装目录我选择C:\Program Files\CGAL-4.4
安装在其他目录时可能会出现用Cmake编译时出现好几外错误。可以尝试通过安装在C盘进行解决。
4、选择如下几项,单击下一步
5、安装完成后可能会出现如下提示,则需要手动添加F:\CGAL-4.4\auxiliary\gmp\lib到Path变量中
6、此时CGAL安装完成
四、用Cmake配置CGAL库
1、打开Cmake软件选择如下目录,注:两个目录是相同的
2、单击“config"-选择如下编译器(默认是32位,与前面安装软件一定要保持一致)
3、单击确定后,出现如下界面说明配置成功
4、找到如下图的这一项,选中,再次单击"config"进行配置
5、单击Generate,此时界面应如下。
6、此时在CGAL安装目录下出现如下文件:CGAL.sln
7、打开此文件,此时编译器会自动组建一个解决方案。如下图
8、选择32位debug模式,按F7进行编译,编译完成后如下图所示,表明CGAL至此完全配置成功。
五、举例测试CGAL
新建一个控制台应用程序,并添加如下代码
#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}
添加包含库目录,操作如下图,注意红色框中的添加内容
添加附加库目录,操作如下图,注意红色框中的添加内容
直接编译运行此时会出现如下错误,别急,我们离成功只差一步了
>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QColor::QColor(int,int,int,int)" (__imp_??0QColor@@QAE@HHHH@Z),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QBrush::QBrush(void)" (__imp_??0QBrush@@QAE@XZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QBrush::~QBrush(void)" (__imp_??1QBrush@@QAE@XZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ),该符号在函数 _main 中被引用
1>test.obj : error LNK2001: 无法解析的外部符号 "protected: virtual bool __thiscall QWidget::winEvent(struct tagMSG *,long *)" (?winEvent@QWidget@@MAE_NPAUtagMSG@@PAJ@Z)
1>test.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __thiscall QWidget::windowActivationChange(bool)" (?windowActivationChange@QWidget@@MAEX_N@Z)
1>G:\Cpp\Midaxis\CGAL512\Debug\CGAL512.exe : fatal error LNK1120: 81 个无法解析的外部命令
添加附加依赖项。
选择“链接器”---“输入”,在其中输入如下添加LIB文件
phonon4.libQAxContainer.libQtCLucene4.libQtCore4.libQtDeclarative4.libQtDesigner4.libQtGui4.libqtmain.libQtOpenGL4.lib
再次编译运行,即可大功告成了!
❷ 如何利用VS2010进行QT开发的环境配置
本人是在BBS上找到的,官网上没仔细去找了(英文太多)。
2. 安装qt sdk
安装其实很简单了,基本上一路回车即可,主要是要注意下qt的安装路径最好安装在全英文路径而且中间没有空格, 安装好后,可以运行开始菜单里面的qt demo,直观感受下qt的强大功能!
界面非常炫酷
4. 编译qt
qt默认使用mingw进行编译,如果要使用vs2010开发,需要将qt重新编译。
进
入开始菜单microsoft visual studio 2010,visual studio tools,visual studio
command prompt (2010),需要注意的是,这里面必须是使用visual studio command prompt
(2010),不能使用cmd的dos窗口
进入qt的安装目录后,执行cd qt,进入qt的根目录
运行命令 configure -platform win32-msvc2010,o(选择opensource模式)回车,y(同意license)回车
k1988插入:
在编译过程中,为了加快速度,可以对configure适当的加些参数,比如-fast,-no-webkit(这个貌似挺耗时的)
我
选择的命令行:configure -platform win32-msvc2010 -fast -debug-and-release
-no-webkit -no-script -no-qt3support -nomake demos -nomake examples
-nomake tools -mp
其中:mp是多线程编译选项。
接着就会自动配置qt的编译环境,等配置结束后,运行nmake,回车,qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上。
liuyu遇到的问题:(自己遇到过,当时没记录下来,但是记得编译过程中遇到这些问题)
1.DefaultLocalizationStrategy.cpp
C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/INCLUDE/yvals.h(21) : war
ning C4005: ‘_HAS_TR1’ : macro redefinition
command-line arguments : see previous definition of ‘_HAS_TR1’
platform/DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform/DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected en
d of file in macro expansion
NMAKE : fatal error U1077: ‘“C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/cl.EXE”’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘“C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/nmake.exe”’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘cd’ : return code ‘0x2’
Stop.
NMAKE : fatal error U1077: ‘cd’ : return code ‘0x2’
Stop.
解决办法:
打开文件…/Qt4.8.5/src/3rdparty/webkit/Source/WebCore
/platform/DefaultLocalizationStrategy.cpp
找到327行删除的引号“”
2.NMAKE:fatal error U1077. return code 0x2
产生原因:找不到代码文件中包含的头文件
解决办法:cmd下进入到vs安装路径/VC/Bin下,执行vcvars32,此时会执行vcvas32.bat自动为vs设置环境变量 (这个也试过好几回,没效果,依然出现上面错误)试试下面的就解决了:
经分析,是环境变量设置的CURR_DIR和TARGETDIR值中含有空格导致了此问题。
通过下面的命令删除环境变量即可。
在d:/Qt/4.8.6目录下键入下面的命令即可(不是很明白)
接着继续nmake命令 回车换行
k1988插入:(本人未找到以下文件)
请先删除
src/3rdparty/webkit/webcore/tmp/moc/debug_shared/mocinclude.tmp
src/3rdparty/webkit/webcore/tmp/moc/release_shared/mocinclude.tmp
/src/script/tmp/moc/debug_shared/mocinclude.tmp
/src/script/tmp/moc/release_shared/mocinclude.tmp
等文件,否则编译有可能失败。
k1988插入:
这一步很重要,关系到是否能用qt-vs-addin。
把d:/qt/bin下的.qmake.cache和configure.cache这两个文件手动备份到另一个地方。
(本人未尝试过)然后使用nmake clean进行清理掉那些中间文件(pdb,obj等文件),清理出4个g左右的空间。
nmake confclean是清理配制文件,占的空间不大,可以不执行了。这个时候再把刚备份的.qmake.cache和configure.cache拷回原处。
5.配置vs2010的qt开发环境(vs2010最好是英文版本,qt对vs2010中文版本可能支持的不好)
等qt编译好后就可以配置vs2010的开发环境了,进入vs2010,选择qt菜单,qt option,进入下图界面
k1988插入:
按
步骤编译好了,用qt助手paths加进去,不知为何ok键不亮, 红字提示:qt in the given path built using
mingw 这个是qt插件的bug,得手工改注册表 hkey_current_user/software/trolltech/versions/
下增加一个子项 qt486(需要的名称) 子项下面增加一个数值 installdir,值就是你要配置的qt路径
ps:如果没有versions这个文件夹就新建一个吧!
(这里确实是个坑,仅仅修改注册表居然没有用,还要去qt的lib文件夹下删掉两个文件 –>>删除qt的lib目录下(我的路径是D:/Qt/4.8.6/lib)的libqtmain.a and libqtmaind.a 两个文件。)
点击add,添加qt的安装目录,并取名字,我这里使用qt的4.8.6版本为名称,选择ok后即可。
6.新建或者导入qt项目
可以通过在vs2010新建一个qt项目