您的位置:首页 > 编程语言 > C语言/C++

手把手教你:【史上最全】C++开发环境搭建:win732位下VS2010+Boost_1_53_0+Qt5.2+MySql搭建

2014-10-06 19:11 399 查看
我想说:这两个多星期走得很辛苦,没有人告诉我win732位系统下VS2010+Boost_1_53_0+Qt5.2+MySql开发环境如何搭建,自己一步一步摸索,重装了无数遍系统,试了几十种方法,才艰辛地将环境搭好了。本着赠人玫瑰,手留余香地王道论坛精神,今天把方法全部倾囊而授,为的是让你们少走许多弯路,把时间放在写程序上面。

声明:安装Qt5.2.0而不是更低版本因为Qt5.2.0及其更高版本已经帮你编译好了MySql和其他一些数据库地驱动,否则你自己编译会发生很多错误。

目标:就算你是一个搭建环境的小白,我也要让你能够按照我的步骤傻子似的一步一步把环境搞定。

注意:红色部分的字要注意,很容易出错

概览:

1安装VS2010

2编译Boost_1_53_0库

3安装Qt5.2

4安装MySql



1安装VS2010

VS2010 旗舰版可用Key:YCFHQ9DWCYDKV88T2TMHG7BHP





















2用VS2010编译Boost_1_53_0

第一步:下载boost,我下载的方法是从http://www.boost.org/上找最新的下载。名字叫boost_1_53_0。

第二步:在D盘(最新的boost_1_53_0编译之后大小为5G多)创建一个目录boost,拷贝进去并解压到当前文件夹。(注,这里我没有创建boost目录,直接解压的)

第三步:开始->程序->MicrosoftVisual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010),打开一个控制台。

第四步:cd d:\boost\boost_1_53_0

第五步:bootstrap.bat

第六步:(1)b2--toolset=msvc-10.0 --build-type=complete stage或者(2)bjam.exe--toolset=msvc-10.0 --build-type=complete。等待执行完成。
注:我在这里第五步之后会生成了bjam.exe和b2.exe.这里我执行(1)成功,执行(2)失败。

设置环境变量:
右击计算机-》属性-》高级系统设置-》高级-》环境变量-》选择系统环境变量下面的“新建”按钮
变量名:BOOST
值:D:\developSoftware\boost_1_53_0【这是我的安装目录】
你们需要修改为你们的安装路径为你们的安装目录:,记住只需要到boost_1_53_0这个目录截止就可以。

点击系统环境变量中的"Path"环境变量,点击编辑:
在最前面添加:
D:\developSoftware\boost_1_53_0\boost;D:\developSoftware\boost_1_53_0\stage\lib;
你们按照你们自己的安装目录进行修改,注意一个是以:boost截止,一个是以lib截止
这一步的作用是为了能够寻找头文件和静态链接库文件

测试:
第一步:创建一个工程,附加包含目录为:d:\boost\boost_1_53_0;附加库目录为:d:\boost\boost_1_53_0\stage\lib。
注:在2010环境下这步,在项目-->右键属性-->VC++ Directories 中去填写对应路径
这两步我的配置的时候是:(1)D:\boost_1_53_0 (2)D:\boost_1_53_0\stage\lib
第二步:编写代码测试。
注:如果编写的测试代码出现类似错误”无法打开包括文件:“boost/regex.hpp”: No such file or directory” 说明附件包含目录出现错误,这时要纠正包含目录。
如果在下还有incude目录,我们只需包含includes目录就加载了相关头文件,如果没有,如上加载总目录,让编译器自己找。
附加:据说在第六步的时候,如果将执行指令里面的“stage”改成”install”,则会生成include指令。
附加测试代码:
C++ Code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<iostream>

#include <boost/regex.hpp>

using namespace std;

int main()

{

// 3 digits, a word, any character, 2 digits or "N/A",

// a space, then the first word again

boost::regex reg("\\d{3}([a-zA-Z]+).(\\d{2}|N/A)\\s\\1");

std::string correct="123Hello N/A Hello";

std::string incorrect="123Hello 12 hello";

assert(boost::regex_match(correct,reg)==true);

assert(boost::regex_match(incorrect,reg)==false);

cout<<"Hello Boost !"<<endl;

}
然后:

右击项目-》属性-》配置属性->C/C++->常规:附加包含目录中,编辑,加入:D:\developSoftware\boost_1_53_0

右击项目-》属性-》配置属性->连接器->输入:附加依赖项,编辑,加入:D:\developSoftware\boost_1_53_0\stage\lib\*.lib

这里你们按照自己的路径进行添加,注意一个是;boost_1_53_0结尾,一个是*.lib结尾。*.lib这里起的作用是过滤掉.dll文件,否则在接下来的

编译中会出现错误。 -》





如果输出结果为:



则表明boost库在vs2010下配置成功。



3安装Qt5.2.0

一、下载Qt5.2安装包(qt-windows-opensource)与Qt插件(Visual
Studio Add-in)


Qt5.2、Qt插件下载地址:http://qt-project.org/downloads.

Qt5.2也可以在这里下载:http://download.qt-project.org/official_releases/qt/5.2/5.2.0/.

找到对应的版本进行下载,里面包含多种不同的版本,MSVC2010、MSVC2012分别是指支持VS2010与VS2012的Qt版本,而opengl与非opengl的区别是是否支持opengl,android、ios分别是指支持android、ios平台的Qt版本。

这里我选择的版本(已标注),如下:

qt-windows-opensource-5.2.0-msvc2010_opengl-x86-offline.exe(opengl版本)

Visual Studio Add-in 1.2.2 for Qt5











二、安装

先安装qt-windows-opensource,路径随意,注意不能有中文,空格

再安装Visual Studio Add-in,路径一定要用默认值,否则会出现错误

安装完成后:设置环境变量:

在系统环境变量中,新建:

变量名:QTDIR

值:D:\Qt\Qt5.2.0\5.2.0\msvc2010_opengl

你们按照你们的安装路径修改,注意最后结尾的是:msvc2010_opengl

安装完成Visual Studio Add-in之后,VS就会出现相应的Qt选项!







三、配置开发环境

选择:Qt5->Qt Options->Add,配置VS的开发环境。





这里根据自己的Qt安装路径进行选择,Path为:D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_opengl。

说明:4.8.3是我之前的版本,因为我可能安装很多个不同的版本(假设发现新版本存在很多问题,我不想再使用,换一个版本,怎么办?)。

如下,选择你想要使用的版本:








如果选择了4.8.3版本,那就必须重新下载一个Visual Studio Add-in for Qt4的插件才可以使用(原则:版本对应)。



以上配置完成之后,就可以导入或者新建Qt项目了。



导入Qt的pro项目

选择:Qt5->Open Qt Project File(.pro)...






新建Qt项目

选择:文件->新建->项目->Qt5
Projects->Qt Application,输入工程名,下一步...进行新建。

如下:







新建完成之后,就可以运行了!

选择:调试->开始执行或者 Ctrl+F5。

如下:







添加环境变量

在工程目录下找到可执行程序,直接运行,会出现丢失*.dll的提示信息。

如下:





解决方法:
(1)右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量PATH:D:\Software\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\bin即可。

(2)在Qt的安装目录下找到缺少的*.dll(D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_opengl\bin),将其与可执行程序放到同一目录下。

推荐:方法一。

因为Qt程序也许会很多,如果每个程序都执行方法二,那么工作量可想而知,所以推荐使用方法一。



检查Qt5.2中是否含有MySql驱动:

安装Qt5.2版本的,可以在安装目录下,pluins\sqldrivers下进行查看,面包含有MySQL驱动。








4 安装MySql

1)

MySQL主页:http://www.mysql.com/.

(1)进入主页,选择:Downloads(GA)
如下:





(2)转到页面最下面,MySQL Community Edition (GPL),选择:Download from MySQL Developer Zone >>
如下:





(3)转到页面右上角,选择:New Releases对应的版本(这里我选择的是5.6)
如下:





(4)转到页面最下面,Other Downloads,选择对应的版本(这里我选择的是32位)
如下:





下载完成之后,进行解压,拷贝到一个指定的路径(我选择的是:D:\mysql-5.6.15-win32)。

将MySQL目录(D:\mysql-5.6.15-win32\lib)下的libmysql.dll、libmysqld.dll拷贝到D:\developSoftware\Qt\Qt5.2.0\5.2.0\msvc2010_opengl\bin目录中。

2)安装mysql-installer-community-5.7.4.0-m14.1411728256.msi

之所以在原来已经有非安装版MySql的基础上又弄安装版MySql原因是:

方面后续项目的可视化操作

下载地址:http://dev.mysql.com/downloads

方法/步骤

1

双击进入安装,如下图:



步骤阅读


2

点击上图红框“Install MySQL Products”进入安装界面,如下图:



步骤阅读


3

根据上图当中第一步骤与第二步骤,进入下图:



步骤阅读


4

进入设置界面,如下图:



步骤阅读


5

在原来旧的版本当中,安装类型有3种安装类型:Typical(典型安装)、Complete(完全安装)和Custom(定制安装)。

Typical(典型安装)安装只安装MySQL服务器、mysql命令行客户端和命令行实用程序。命令行客户端和实用程序包括mysqldump、myisamchk和其它几个工具来帮助你管理MySQL服务器。

Complete(完全安装)安装将安装软件包内包含的所有组件。完全安装软件包包括的组件包括嵌入式服务器库、基准套件、支持脚本和文档。

Custom(定制安装)安装允许你完全控制你想要安装的软件包和安装路径。

而在新版本当中,选项有所不同,不过我这里默认选第一项了,其它选项请看下图:



步骤阅读


6

进入安装前环境验证,如下图:



步骤阅读


7

点击“Execute”按钮后,可能会下载一些程序,到时你自己点击安装就行了,直到所有安装完成就OK了,如下图:



步骤阅读


8

点击“Next”进入安装,如下图:



步骤阅读


9

网络不好的,得下一阵子呢,等着吧!当安装完了,如下图:



步骤阅读


10

接着下一步,如下图:



步骤阅读


11

进入服务器配置,可以选择3种服务器类型,选择哪种服务器将影响到MySQL Configuration Wizard(配置向导)对内存、硬盘和过程或使用的决策。 Developer Machine(开发机器):该选项代表典型个人用桌面工作站。假定机器上运行着多个桌面应用程序。将MySQL服务器配置成使用最少的系统资源。 Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其它应用程序一起运行,例如FTP、email和web服务器。MySQL服务器配置成使用适当比例的系统资源。

Dedicated MySQL Server Machine(专用MySQL服务器):该选项代表只运行MySQL服务的服务器。假定运行没有运行其它应用程序。MySQL服务器配置成使用所有可用系统资源。

如下图:



步骤阅读


12

点击“Next”按钮进入下图:



步骤阅读


13

点击“Next”进入系统服务Myqsl配置,如下图:



步骤阅读


14

点击“Next”进入日志配置界面,如下图:



步骤阅读


15

我简单配置错误日志存放路径,如果不想进入日志配置,那就在“服务器配置”那里不选高级配置,如图下图:



步骤阅读


16

配置日志后点击“Next”进入最后配置,如下图:



步骤阅读



步骤阅读



步骤阅读


17

MySQL安装完成,我们验证一下,是否可以正常使用,如下图:



步骤阅读


18

或者使用MySQL Workbench,如下图:



步骤阅读


19

输入密码后,查询一下,如下图:



步骤阅读


20

所有安装配置成完。





测数:Qt连接MySql

在你的MySql的WorkBench中另:

用户名为:root

密码:123456

新建数据库:qttest

不做这些,下面的Qt将连接不上MySql,数据库先创建名为"qttest"的原因是,下面的代码需要连接这个数据库,如果你本身没有创建,就导致一直连接不上



然后编写qt程序:

在"connection.h"中copy下面代码

#ifndef CONNECTION_H

#define CONNECTION_H

#include <QtSql\qsqldatabase.h>

inline bool createOneConnection()

{

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("127.0.0.1");//设置主机地址为本地地址

db.setDatabaseName("qttest");//注意这里的数据库一定要事先在MySql中建好

db.setUserName("root");//注意这里一定要与你设置的用户名相一致

db.setPassword("123456");//注意一定要设置密码

if (!db.open()) {

qDebug() << db.lastError();

getchar();

return false;

}

return true;

}

#endif



在main.cpp中copy下面代码:

#include "test.h"

#include <QtWidgets/QApplication>

#include <QtCore\qdebug.h>

#include <QtSql\qsqldatabase.h>

#include <QtSql\qsqlquery.h>

#include <QtSql\qsqlerror.h>

#include "connection.h"

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

if (!createOneConnection())

return 1;

QSqlQuery query;

query.exec("CREATE TABLE artist ("

"id INTEGER PRIMARY KEY, "

"name VARCHAR(40) NOT NULL, "

"country VARCHAR(40))");

query.exec("CREATE TABLE cd ("

"id INTEGER PRIMARY KEY, "

"artistid INTEGER NOT NULL, "

"title VARCHAR(40) NOT NULL, "

"year INTEGER NOT NULL)");

query.exec("CREATE TABLE track ("

"id INTEGER PRIMARY KEY, "

"cdid INTEGER NOT NULL, "

"number INTEGER NOT NULL, "

"title VARCHAR(40) NOT NULL, "

"duration INTEGER NOT NULL)");

#if 1

query.exec("INSERT INTO artist "

"VALUES (1001, 'Gluecifer', 'Norway')");

query.exec("INSERT INTO artist "

"VALUES (1002, 'The Sounds', 'Sweden')");

query.exec("INSERT INTO artist "

"VALUES (1003, 'Melvins', 'USA')");

query.exec("INSERT INTO artist "

"VALUES (1004, 'Strapping Young Lads', 'Canada')");

query.exec("INSERT INTO cd "

"VALUES (2001, 1001, 'Riding the Tiger', 1997)");

query.exec("INSERT INTO cd "

"VALUES (2002, 1001, 'Easy Living', 2002)");

query.exec("INSERT INTO cd "

"VALUES (2003, 1002, 'Living in America', 2002)");

query.exec("INSERT INTO cd "

"VALUES (2004, 1003, 'Bullhead', 1991)");

query.exec("INSERT INTO cd "

"VALUES (2005, 1003, 'Stag', 1996)");

query.exec("INSERT INTO cd "

"VALUES (2006, 1003, 'Hostile Ambient Takeover', "

"2002)");

query.exec("INSERT INTO cd "

"VALUES (2007, 1003, '26 Songs', 2003)");

query.exec("INSERT INTO cd "

"VALUES (2008, 1004, 'City', 1997)");

query.exec("INSERT INTO cd "

"VALUES (2009, 1004, 'No Sleep Till Bedtime', "

"1998)");

query.exec("INSERT INTO cd "

"VALUES (2010, 1004, 'Syl', 2003)");

query.exec("INSERT INTO track "

"VALUES (3001, 2004, 01, 'Boris', 514)");

query.exec("INSERT INTO track "

"VALUES (3002, 2004, 02, 'Anaconda', 143)");

query.exec("INSERT INTO track "

"VALUES (3003, 2004, 03, 'Ligature', 229)");

query.exec("INSERT INTO track "

"VALUES (3004, 2004, 04, 'It''s Shoved', 155)");

query.exec("INSERT INTO track "

"VALUES (3005, 2004, 05, 'Zodiac', 254)");

query.exec("INSERT INTO track "

"VALUES (3006, 2004, 06, 'If I Had An Exorcism', "

"187)");

query.exec("INSERT INTO track "

"VALUES (3007, 2004, 07, 'Your Blessed', 339)");

query.exec("INSERT INTO track "

"VALUES (3008, 2004, 08, 'Cow', 271)");

#endif

return 0;

}



然后在MySql的WorkBench的qttest数据库:右击->refresh,发现多了3张表,

哈哈,你成功了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: