• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

使用Lccwin32进行MySQL开发

发布: 2007-7-02 11:08 | 作者: admin | 来源: | 查看: 8次 | 进入软件测试论坛讨论

领测软件测试网


当前作者:王猛 (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和我进行讨论。好运!

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

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网