使用Lccwin32進行MySQL開發。

來源:互聯網
上載者:User
mysql
使用Lccwin32進行MySQL開發。

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

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

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

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

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

CFLAGS=-I"c:\lcc\include"  -O  -p6 -unused -ansic

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

CFLAGS=-I"c:\lcc\include" -I"c:\mysql\include" -O  -p6 -unused -ansic

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

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

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

#pragma lib <libmysql.lib>
#include <stdio.h>
#include "mysql.h"

MYSQL *myData;

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

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

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

** 適用範圍MySQL3.23.x以上 ( www.mysql.com )
** lccwin32 3.2以上 ( www.cs.virginia.edu/~lcc-win32/ )

** 如果您有什麼問題,可以通過電子郵件HeartIcy@163.com和我進行討論。好運!

** 本文檔遵循美國自由軟體基金會通用文檔許可協議發布 **


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。