自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Windows下安裝Qt4及編譯Mysql5驅(qū)動(dòng)程序(成功)

移動(dòng)開發(fā)
本文是詳解Qt4 Windows下安裝Qt4及編譯Mysql5驅(qū)動(dòng)程序 (安裝成功)的內(nèi)容,不多說我們先來看內(nèi)容。

詳解Qt 4 Windows下安裝Qt 4及編譯Mysql5驅(qū)動(dòng)程序 (安裝成功)是本文要介紹的內(nèi)容,我們先來看內(nèi)容,首先說明的是,我的編譯過程參考了網(wǎng)上的諸多資料,主要是云帆和小橙的。

下列粉紅色的字體是輸入的命令

云帆論壇網(wǎng)址http://www.myswear.net/forum/viewthread.php?tid=5060&extra=page%3D1,

這個(gè)網(wǎng)址是小橙的 http://blog.csdn.net/cangwu_lee/archive/2007/05/23/1621676.aspx

1.安裝dev-cpp

安裝到c:/dev-cpp

2、安裝mysql,不要安裝錯(cuò)了,要下載非安裝版的才行,否則會(huì)缺少lib等文件夾.這里給出一個(gè)下載路徑

ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-5.1/mysql-noinstall-5.1.22-rc-win32.zip

解壓縮并放到c:/mysql文件夾中.為了讓mysql把自己的信息寫入注冊(cè)表最好執(zhí)行一下bin目錄下的mysqld.exe文件(鼠標(biāo)雙擊即可)
 
3、安裝qt4的開源版

  1. 安裝到c:/qt/ 

安裝過程中會(huì)詢問mingw的位置指定c:/dev-cpp

4.設(shè)置系統(tǒng)變量

方法是:我的電腦->右鍵屬性->高級(jí)->環(huán)境變量.如果有些變量已經(jīng)存在就添加沒有就創(chuàng)建出來

  1. Path=c:/qt/4.3.2/bin;c:/Dev-Cpp/bin;c:/mysql;C:/Qt/4.3.2/include (這個(gè)是添加的部分)  
  2. QMAKESPEC=win32-g++(這兩個(gè)是創(chuàng)建的)  
  3. QTDIR=c:/qt/4.3.2 

5.隨意編寫一個(gè)程序測(cè)試程序能否編譯執(zhí)行,如果能通過的話繼續(xù)下面的步驟否則根據(jù)錯(cuò)誤提示修改相關(guān)內(nèi)容

  1. 例如: qmake -project  
  2.           qmake  xx.pro              
  3.           make 

在release文件夾中就可以找到可執(zhí)行文件了.

6、下載動(dòng)態(tài)庫格式轉(zhuǎn)換工具,網(wǎng)址為: http://www.qtcn.org/download/mingw-utils-0.3.tar.gz

把reimp.exe解壓縮到C:/Dev-Cpp/bin文件夾下

7、進(jìn)入mysql文件夾:

  1. cd c:/mysql/lib/opt 

生成def文件  c:/mysql/lib/opt>reimp -d libmysql.lib

8、進(jìn)入qt的mysql文件夾

指定def : C:/mysql/lib/opt>dlltool -k -d libmysql.def -l libmysql.a

生成makefile文件: (注意下面的命令很長(zhǎng)參數(shù)也比較多不能寫錯(cuò))

  1. C:/Qt/4.3.2/src/plugins/sqldrivers/mysql.bak>qmake -o Makefile "INCLUDEPATH+=C:/MYSQL/INCLUDE"   "LIBS+=C:/MYSQL/LIB/OPT/LIBMYSQL.a" mysql.pro 

9、運(yùn)行mingw32-make生成mysql的動(dòng)態(tài)庫驅(qū)動(dòng)程序文件之間可能會(huì)出錯(cuò)

1) D:/Qt/4.3.2/src/plugins/sqldrivers/mysql>mingw32-make

  1. mingw32-make -f Makefile.Release  
  2. Makefile.Release:104: *** multiple target patterns.  Stop.  
  3. mingw32-make[1]: Entering directory `D:/Qt/4.3.2/src/plugins/sqldrivers/mysql'  
  4. mingw32-make[1]: Leaving directory `D:/Qt/4.3.2/src/plugins/sqldrivers/mysql'  
  5. mingw32-make: *** [release] Error 2 

對(duì)于這種錯(cuò)誤是生成的makefile文件格式有問題最好把前邊的工作從頭再來一次,也可以這么修改,但是好像還會(huì)有其它錯(cuò)誤出現(xiàn),等待高手指點(diǎn)了.主要原因是由于有些特殊字符無法看到造成的,我是通過notepad2才看出來的.

Qt4 Windows下安裝Qt4及編譯Mysql5驅(qū)動(dòng)程序

2).在編譯的過程中可能會(huì)出現(xiàn)"mysql.h"文件找不到的提示,修改C:/Qt/4.3.2/src/sql/drivers/mysql文件夾下的qsql_mysql.h文件的第49行,指定mysql.h文件的具體位置,例如 #include <C:/MySQL/include/mysql.h>

3).  C:/Qt/4.3.2/src/plugins/sqldrivers/mysql>mingw32-make

  1. mingw32-make -f Makefile.Release  
  2. mingw32-make[1]: Entering directory `C:/Qt/4.3.2/src/plugins/sqldrivers/mysql'  
  3. g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel  
  4. oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,c:/Qt/4.3.2/plugins/sqldrivers/  
  5. libqsqlmysql4.a -o "../../../../plugins/sqldrivers/qsqlmysql4.dll" tmp/obj/relea  
  6. se_shared/main.o tmp/obj/release_shared/qsql_mysql.o tmp/obj/release_shared/moc_  
  7. qsql_mysql.o  -L"c:/Qt/4.3.2/lib" -L"c:/Qt/4.3.2/lib" tmp/obj/release_shared/qsq  
  8. lmysql_resource_res.o C:/MYSQL/LIB/OPT/LIBMYSQL.a -llibmysql -lQtSql4 -lQtCore4  
  9. c:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../mingw32/bin/ld.exe: cannot f  
  10. ind -llibmysql  
  11. collect2: ld returned 1 exit status  
  12. mingw32-make[1]: *** [../../../../plugins/sqldrivers/qsqlmysql4.dll] Error 1  
  13. mingw32-make[1]: Leaving directory `C:/Qt/4.3.2/src/plugins/sqldrivers/mysql'  
  14. mingw32-make: *** [release] Error 2 

在編譯過程中可能會(huì)出現(xiàn)"llibmysql文件找不到"的提示拷貝你生成的libmysql.lib文件到C:/Qt/4.3.2/lib文件夾下就可以編譯通過了

10.改正以上錯(cuò)誤后,編譯會(huì)通過.你就可以看到mysql的驅(qū)動(dòng)程序了.注意路徑和這兩個(gè)文件的創(chuàng)建日期

Qt4 Windows下安裝Qt4及編譯Mysql5驅(qū)動(dòng)程序

11、進(jìn)入mysql的bin文件夾執(zhí)行mysqld.exe啟動(dòng)mysql的服務(wù)

  1.     C:/>cd mysql/bin                         //進(jìn)入可執(zhí)行文件目錄  
  2.     C:/>cd mysql/bin/mysqld.exe    //啟動(dòng)服務(wù)(如果前邊啟動(dòng)過了就跳過)  
  3.     C:/mysql/bin>mysql.exe -u root //由于還沒有給root設(shè)置密碼所以這里直接登錄,有些系統(tǒng)可能會(huì)失敗  
  4. Welcome to the MySQL monitor.  Commands end with ; or /g. Your MySQL connection id is 1  
  5. Server version: 5.1.22-rc-community MySQL Community Server (GPL)  
  6.  
  7. Type 'help;' or '/h' for help. Type '/c' to clear the buffer.  
  8.  
  9. mysql> quit                                    //退出客戶端  
  10. Bye 

#p#

12、修改root用戶的密碼

  1.  C:/mysql/bin>mysqladmin.exe -u root -p password "123456"    //修改root密碼為 123456  
  2.  Enter password:       <---這里一定不要輸入東西,直接會(huì)車即可  
  3. 測(cè)試空密碼能否登錄 C:/mysql/bin>mysql.exe -u root                  //這時(shí)空密碼已經(jīng)不能登錄了  
  4. RROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 

13、登錄mysqlo

  1. C:/mysql/bin>mysql.exe -u root -p                     //登錄時(shí)指定需要輸入密碼就可以登錄了   
  2. Enter password: ******  
  3. Welcome to the MySQL monitor.  Commands end with ; or /g.  
  4. Your MySQL connection id is 4  
  5. Server version: 5.1.22-rc-community MySQL Community Server (GPL)  
  6.  
  7. Type 'help;' or '/h' for help. Type '/c' to clear the buffer. 

創(chuàng)建數(shù)據(jù)庫mysql> create database mydata;

  1. Query OK, 1 row affected (0.00 sec) 

使用數(shù)據(jù)庫mysql> use mydata;

  1. Database changed 

創(chuàng)建表mysql>  CREATE TABLE employee (

  1.     ->      id CHAR(3),  
  2.     ->      lastname VARCHAR(30),  
  3.     ->      firstname VARCHAR(20),  
  4.     ->      dob DATETIME,  
  5.     ->      phone VARCHAR(10)  
  6.     ->      );  
  7. Query OK, 0 rows affected (0.01 sec) 

察看表是否創(chuàng)建成功mysql> show tables;

+------------------+
| Tables_in_mydata |
+------------------+
| employee         |
+------------------+

1 row in set (0.00 sec)

插入兩條測(cè)試數(shù)據(jù)

  1. mysql>  INSERT INTO employee VALUES ("001", "熱", "X", "2000-05-18", "5188");  
  2. Query OK, 1 row affected (0.05 sec)  
  3.  
  4. mysql> INSERT INTO employee VALUES ("002", "包", "子", "2000-05-18", "5198") ;  
  5. Query OK, 1 row affected (0.00 sec) 

察看數(shù)據(jù)是走插入成功

mysql> select * from employee;

+------+----------+-----------+---------------------+-------+
| id   | lastname | firstname | dob                 | phone |
+------+----------+-----------+---------------------+-------+
| 001  | 熱       | X         | 2000-05-18 00:00:00 | 5188  |
| 002  | 包       | 子        | 2000-05-18 00:00:00 | 5198  |
+------+----------+-----------+---------------------+-------+
2 rows in set (0.00 sec)

mysql> select version();
+----------------------------+
| version()                      |
+----------------------------+
| 5.0.22-community-nt |
+-----------------------------+
1 row in set (0.00 sec)

13、創(chuàng)建應(yīng)用程序測(cè)試數(shù)據(jù)庫是否可以使用

  1. #include<QApplication> 
  2. #include<QtSql/QSqlDatabase> 
  3. #include<QtSql/QSqlQuery> 
  4. #include<QTextEdit> 
  5. #include<QtCore/QDateTime> 
  6. #include<QtSql/QSqlDriver> 
  7. int main(int argc, char **argv)  
  8. {  
  9.   QApplication app(argc, argv);  
  10.   QTextEdit display; display.resize(400, 160);  
  11.   display.show(); // 下面進(jìn)行數(shù)據(jù)庫的設(shè)置  
  12.   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql數(shù)據(jù)庫驅(qū)動(dòng)   
  13.   db.setHostName("localhost");  
  14.   db.setDatabaseName("mydata"); // 我們之前建立的數(shù)據(jù)庫  
  15.   db.setUserName("root"); // 我們創(chuàng)建的 yunfan 用戶名  
  16.   db.setPassword("123456"); // yunfan 用戶的密碼  
  17.   bool ok = db.open(); // 嘗試連接數(shù)據(jù)庫  
  18.   if(ok)  
  19.     { // 這里用yunfan已經(jīng)成功連上數(shù)據(jù)庫  
  20.      QSqlQuery query; // 新建一個(gè)查詢的實(shí)例  
  21.      if(query.exec("select * from employee")){ // 嘗試列出 employee 表的所有記錄  
  22.      // 本次查詢成功  
  23.     int numRows = 0; // 詢問數(shù)據(jù)庫驅(qū)動(dòng),是否驅(qū)動(dòng)含有某種特性   
  24.     if(db.driver()->hasFeature(QSqlDriver::QuerySize)){  
  25.       numRows = query.size(); // 如果支持結(jié)果影響的行數(shù),那么直接記錄下來  
  26.       }  
  27.    else  
  28.       {  
  29.        query.last(); //否則定位到結(jié)果最后,qt 文檔說,這個(gè)方法非常慢  
  30.        numRows = query.at() + 1;  
  31.       }  
  32.    QString id, lname, fname, phone; QDateTime dob;   
  33.    display.append("===========================================");   
  34.    display.append(QString::fromLocal8Bit(" id | 姓名 | 生日 | 電話"));   
  35.    display.append("--------------------------------------");  
  36.    while(query.next())  
  37.       { // 定位結(jié)果到下一條記錄  
  38.        id = query.value(0).toString();  
  39.        lname = QString::fromLocal8Bit(query.value(1).toByteArray());  
  40.        fname = QString::fromLocal8Bit(query.value(2).toByteArray());  
  41.        dob = query.value(3).toDateTime();  
  42.        phone = QString::fromLocal8Bit(query.value(4).toByteArray());  
  43.        QString result = id + " " + fname + lname + " " + (dob.toString()) + " "+phone;  
  44.        display.append(result);  
  45.      }  
  46.    display.append("============================================");  
  47.    display.append(QString("totally %1 rows").arg( numRows) );  
  48.    }  
  49.   else  
  50.       { // 如果查詢失敗,返回錯(cuò)誤  
  51.       display.append("From mysql database: Error");  
  52.   }  
  53.  }   
  54. else  
  55.    { // 打開數(shù)據(jù)庫失敗,顯示數(shù)據(jù)庫失敗  
  56.     display.append("cannot open database.");   
  57.     display.append("Reason: database error");  
  58. }  
  59. QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));  
  60. return app.exec();  

下圖為實(shí)際運(yùn)行效果

Qt4 Windows下安裝Qt4及編譯Mysql5驅(qū)動(dòng)程序

14、這兩個(gè)新生成的mysql的驅(qū)動(dòng)程序可以拷貝到其它系統(tǒng)中使用,也就是說一個(gè)系統(tǒng)里編譯的驅(qū)動(dòng)可以在其它系統(tǒng)中使用,只要拷貝到相應(yīng)的目錄就可以了.至于是否和其它不同版本的mysql能否配合使用沒有測(cè)試.

小結(jié):關(guān)于詳解Qt 4 Windows下安裝Qt 4及編譯Mysql5驅(qū)動(dòng)程序 (安裝成功)的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: CSDN博客
相關(guān)推薦

2009-10-29 09:53:17

ubuntuKdevelopqt4

2009-10-29 09:53:17

ubuntuKdevelopqt4

2011-07-05 13:32:45

QT Mysql 驅(qū)動(dòng)

2018-11-19 10:15:26

Windows 10WiFi驅(qū)動(dòng)程序

2011-07-05 14:16:50

QT Mysql 驅(qū)動(dòng)

2010-05-11 19:02:24

MySQL5 綠色版

2011-06-24 17:05:07

QT QT 4.7.3 windows

2017-03-03 08:40:32

2012-11-22 13:49:52

Windows 7

2019-10-22 15:40:34

Windows 10驅(qū)動(dòng)程序Windows

2011-01-06 16:29:08

linuxtasklet機(jī)制

2011-07-05 09:25:05

Qt MySQL 驅(qū)動(dòng)

2011-06-14 13:59:09

Qt Qt 4.7.3 MYsql

2011-06-21 16:40:58

Qt 靜態(tài)編譯

2009-07-03 16:48:05

Windows CE

2019-03-27 13:20:31

Windows 10更新驅(qū)動(dòng)程序

2009-06-12 08:39:08

微軟Windows 7操作系統(tǒng)

2009-07-06 18:17:46

JDBC驅(qū)動(dòng)程序

2009-11-30 14:51:00

Linux設(shè)置無線網(wǎng)卡

2011-08-16 16:32:13

Linux驅(qū)動(dòng)程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)