关于嵌入式mysql开发资料很少,有几篇帖子只说自己编译通过了,却不说说关键的步骤。
还是mysql的工程师厚道,给出了嵌入式mysql开发的ptt(http://www.mysqlconf.com/mysql2009/public/schedule/detail/6833 - http://assets.en.oreilly.com/1/event/21/MySQL%20Embedded_%20Getting%20Started%20with%20libmysqld%20Presentation.ppt),根据ppt上详细的介绍,你还会找到链接http://sourceforge.net/projects/libmysqlddemo/,这是作者写的一个win32 dialog 嵌入式mysql 的demo,相当的给力。
下载的demo文件包为:libmysqld_demo_1_0.zip,我编译的过程如下。
准备bd.cmd 和 errmsg.sys,errmsg.sys在mysql的安装目录中去找,我找的是mysql安装目录中的:share\english\errmsg.sys,然后把这个文件errmsg.sys放入demo文件夹中的language子文件夹,把bd.cmd放入demo文件夹中。
bd.cmd文件内容如下:
@echo off
echo + batch script for windows sdk(c version).
echo + usage : type "bd" or "bd NDEBUG" or "bd clean".
echo + "bd" : build debug version.
echo + "bd NDEBUG": build release version.
echo + "bd clean" : delete result files.
if "%1" equ "clean" goto clean
if "%1" neq "" (if "%1" equ "NDEBUG" (echo + & echo + build release version. & echo + & goto release) else (echo + & echo + invalidate parameter. & echo + & goto end)) else (echo + & echo + build debug version. & echo + & goto debug)
:clean
echo + & echo + delete result files. & echo + & del *.obj & del *.exe & del *.res & del *.exp & del *.lib & del *.dll
goto end
:release
rc libmysqld_demo.rc
cl /c /MD /D%1 /I%qssdk%\include\mysql *.c
link /libpath:%qssdk%\lib\x86 libmysqld_demo.obj libmysqld_demo.res kernel32.lib gdi32.lib user32.lib libmysqld.lib
goto end
:debug
rc libmysqld_demo.rc
cl /c /MDd /I%qssdk%\include\mysql *.c
link /libpath:%qssdk%\lib\x86 libmysqld_demo.obj libmysqld_demo.res kernel32.lib gdi32.lib user32.lib libmysqld.lib
goto end
:end
if exist libmysqld_demo.dll.manifest mt -manifest libmysqld_demo.dll.manifest -outputresource:libmysqld_demo.dll;2
if exist libmysqld_demo.exe.manifest mt -manifest libmysqld_demo.exe.manifest -outputresource:libmysqld_demo.exe
del *.manifest
qssdk这个环境变量是我自己建立的,mysql的.h文件和.lib文件就放在其中的子文件夹中方便管理,这个你可以直接设置你喜欢的目录。
编译:
C:\Documents and Settings\qs\桌面\libmysqld_demo_1_0>bd NDEBUG
+ batch script for windows sdk(c version).
+ usage : type "bd" or "bd NDEBUG" or "bd clean".
+ "bd" : build debug version.
+ "bd NDEBUG": build release version.
+ "bd clean" : delete result files.
+
+ build release version.
+
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
libmysqld_demo.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
Microsoft (R) Manifest Tool version 5.2.3790.2075
Copyright (c) Microsoft Corporation 2005.
All rights reserved.
C:\Documents and Settings\qs\桌面\libmysqld_demo_1_0>dir *.exe
驱动器 C 中的卷是 WinXP
卷的序列号是 3CF9-95F7
C:\Documents and Settings\qs\桌面\libmysqld_demo_1_0 的目录
2011-11-14 10:43 13,824 libmysqld_demo.exe
1 个文件 13,824 字节
0 个目录 21,090,557,952 可用字节
C:\Documents and Settings\qs\桌面\libmysqld_demo_1_0>libmysqld_demo.exe
C:\Documents and Settings\qs\桌面\libmysqld_demo_1_0>
自己编译的例子传到了csdn资源,有兴趣就download - http://download.csdn.net/detail/qs_coding/3792579。