Dev-C++ 下 需要把MySQL 的 libmySQL.dll转变为libmySQL.a
http://16hot.blog.isyi.com/post/1/144
在网上搜索到一些资料,按照上面提示的方法。
已经解决了问题。
因为我使用的是Dev-C++开发工具。他使用的是gcc编译器。
而MySQL提供的Windows For C连接库不支持gcc 、 CygWin 、MinGW等。
因此在编译连接的时候,就会出现错误提示。
解决方法:
1 、安装好MySQL (如果不愿意安装,那找个libmySQL.dll文件也可以)
2、下载Pexports工具
3、转换操作: pexports libmySQL.dll > libmySQL.def
4、使用Cygwin的 dlltool转换成为libmysql.a文件。dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k
5、尝试是否成功: gcc -o mysqldemo mysqldemo.o <path to libmysql.a>
如果再出现象mysql_connect@xx (xx是数字)的错误提示。就执行第6步。
6、修改libmysql.def文件,给mysql_connect加上@xx,即: mysql_connect@xx
7、重做第4步
8、然后尝试第5步,如果还是出现错误提示。就作第6步。一直到没有错误为止。
04/11/2005, 23:51
你是如何编译的呢?
05/11/2005, 17:32
第一步:指定mysql.h等包含文件的路径
在Dev-C++里,打开项目,Alt+P 打开项目属性。
在“文件/目录” -> “包含文件目录”添加你存放mysql头文件的路径。
第二步:生成libmySQL.a文件
参考我上面的文章,必须将libmySQL.dll转换成为libmySQL.a ,编译器才能认。
因为mysql自带的libmySQL.dll是给微软的VC++使用的。:(
我也因为这个问题,搞了N久。
第三步:指定libmySQL.a的路径
同样是在项目属性里。在“参数”页,有个“连接器”框。在下面有“加入库或者对象”,点击打开,到你存放libmySQL.a文件的目录,选择它。
然后“确定”退出属性窗口,再编译。
这时候会出现一些函数提示如mysql_query@8 不存在等。需要参考上面文章,一步一步改,生成新的libmySQL.a文件。
直到成功为止。
11/05/2006, 22:31
16hot兄:真的非常感谢,为了这一丁点东西,我找这方面的资料找了好久呢。由于讨厌使用盗版软件,在可能的情况下,我都使用Free Software完全代替了盗版软件。因此我也用DEV-CPP完全代替了Visual C++,不过DEV-CPP使用资料真的奇缺,帮助文档也不够详细。免费软件嘛,哪能做那么周到,不过在此还是真得谢谢你了。
我想在过些时把一些常用的、国内资料少的开发软件使用方法、技巧写一些文章,希望到时候我们可以交流一下,我留下Gmail邮箱,请你时间时请给我Mail吧,到时候我们在交流一下啊!!!
Email:lewbing@gmail.com
09/07/2007, 18:16
您好
我找了網路上好多文章~終於看到這篇
於是我試著你的方法~產生了 libmysql.a
但是我link的時候還是會發生錯誤...
[Linker error] undefined reference to `mysql_init@4'
[Linker error] undefined reference to `mysql_real_connect@32'
[Linker error] undefined reference to `mysql_query@8'
[Linker error] undefined reference to `mysql_close@4'
我的IDE是 DEV-C++ 4.9.9.2
MYSQL是 5.0.27
請問您有遇過這樣問題嗎?
12/07/2007, 21:43
修改libmysql.def文件,把提示没有的函数都加上,然后再从第4、5步。如果还有,就继续重复,直到没有提示为止。