数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
使用Lccwin32进行MySQL开发。

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

使用Lccwin32进行MySQL开发。

当前作者:王猛 ([email protected]
创建日期: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/ )

** 如果您有什么问题,可以通过电子邮件[email protected]和我进行讨论。好运!

** 本文档遵循美国自由软件基金会通用文档许可协议发布 **




相关文章

相关软件