使用Lccwin32進行MySQL開發。 (轉)

worldblog發表於2007-12-13
使用Lccwin32進行MySQL開發。 (轉)[@more@]

使用Lcc進行My開發。

當前作者:王猛 (to:HeartIcy@163.com">HeartIcy@163.com)
建立日期:年2月11日
修訂版本:1.1

我是一個學生,或許是這輩子永遠都是一個學生。因為我從來沒想過我會成
為一代宗師!!^^||正因為我是學生,所謂我需要挑選對標準支援完整而且
容易獲得的免費。lccwin32對標準的支援度非常高,並且擴充套件性也很
強勁。通常遵循C89或C99標準編寫的開發庫,頭部分基本不用修改,只
要轉換庫檔案(.lib)的格式就可以用了。

我將透過一個簡單的例子演示如何透過Lccwin32進行的開發。重點的地
方不是程式碼部分,而是編譯器的lccwin32本身的編輯器部分對中文的
支援等於0,並且在標頭檔案引用路徑設定上存在,我們要手工處理!這也是
我認為寫這篇筆記的重要性。(我從來不認為我寫的東西是什麼文章,我還沒
那種分量。^^||)

剛才提到了lccwin32編輯器有bug,我們需要手工修改編譯器產生的makefile
檔案否則根本無法編譯。

假設你是採用預設路徑,則lccwin32編輯器自動產生的makefile檔案中應該包
含類似子段:

CFLAGS=-I"c:lccinclude"  -O  -p6 -unused -ansic

我們如果直接從編輯器新增多標頭檔案引用路徑會產生錯誤,因此我們手工新增
路徑變成下邊這種形式:

CFLAGS=-I"c:lccinclude" -I"c:mysqlinclude" -O  -p6 -unused -ansic

ok!第一個問題標頭檔案引用解決了。

現在我們開始解決下一個問題庫檔案(.lib)。的mysql庫檔案採用vc5編
譯,我們要先利用lccwin32附帶的庫轉換工具進行轉化。轉換之後lccwin32就可
以正常識別此庫檔案。那麼重要的問題是我們如何引入庫檔案。Lccwin32中我們
可以使用兩種方法,第一種方法就是從編輯器的庫引用中直接敲入庫名稱;另外
一種就是利用編譯器的預偽指令#pragma lib "庫"。我推薦採用第二種,
因為開發過程中我們需要debug版庫檔案進行debuger,實際發行中為了我們
則需要用opt版生成最終發行檔案,在lccwin32這套環境中直接在編輯器中進行設
置是不明智的!

現在我們解決了標頭檔案和庫檔案的引用,實際上已經沒有什麼問題。一個簡簡單
單的例子如下:

#pragma lib
#include
#include "mysql.h"

MYSQL *myData;

int main(int argc, char *argv[])
{
char userid[20];
strcpy(userid, "");  // 賬號
char pass[20];
strcpy(password, "");  // 密碼
char host[20];
strcpy(host, "localhost"); // 主機
char Name[10];

strcpy(dbName, "test");  //
if ( (myData = mysql_init((MYSQL*) 0)) &&
mysql_real_connect(myData, host, userid, password, dbName, MYSQL_PORT, NULL, 0))
printf("Mysql readyn");
else
exit(0);
mysql_close( myData ) ;
return 1;
}

如果完全依照本文,已經產生一個3.03kb或13.03kb(debuger)的可以檔案。順便說,
我不知道現在還有比拼產生的可執行檔案體積不。mysql官方例程用lccwin32編譯後體積
只有vc產生的可執行檔案大小的1/5!

** 適用範圍MySQL3.23.x以上 ( )
** lccwin32 3.2以上 ( )

** 如果您有什麼問題,可以透過電子和我進行討論。好運!

** 本文件遵循美國自由基金會通用文件許可釋出 **


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992547/,如需轉載,請註明出處,否則將追究法律責任。

相關文章