libxml2 在mingw中 xmlfree连接错误问题
libxml2 在mingw中 xmlfree连接错误问题
原地址:http://blog.csdn.net/hongqun/article/details/6009684
libxml2是一套非常好用的xml库,官网是http://www.libxml.org/,但是天知道是什么原因,此网页无法访问。
好不容易下载下来,在mingw中却问题多多。
第一个问题:
也就是说,编译通过了,但是在链接过程中找不到xmlFree等函数。
网上有人说,修改xmlexports.h文件,参考这里:http://blog.sina.com.cn/s/blog_4f183d960100dt2i.html和这里:http://mail.gnome.org/archives/xml/2004-February/msg00007.html。勉强可以编译过通过。但是总觉得修改库的头文件这种做法不太好。终于被我发现了,在xmlexports.h中有这么一段:
注释部分说的正是这个问题。我干脆将IN_LIBXML定义到代码里,编译果然没问题了。(转载tip:IN_LIBXML的定义应当在libxml头文件引入之前)
但是我高兴得太早了,
第二个问题:
程序一运行就崩溃了!gdb看了一下,又是xmlFree!
原来,libxml2的windows二进制版本是用Microsoft C编译链接的,一般情况下,mingw中的pexport和dlltool都能链接到动态库并正常工作,除了dll库中的静态数据。libxml2中的xmlFree、xmlMalloc和xmlRealloc都是以静态变量的形式出现的。具体原因可以看这里:http://www.linuxquestions.org/questions/programming-9/[solved]using-libxml2-on-mingw-xmlfree-crashes-839802/
解决的办法是在xmlParseFile或者其它xml函数初始化DLL变量后,加入:
if(!xmlFree) xmlMemGet(&xmlFree,&xmlMalloc,&xmlRealloc,NULL);
才能解决问题。
libxml2 在mingw中 xmlfree连接错误问题的更多相关文章
- 关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误
关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误原因:listener.ora中没有指定监听服务器名. 如下是解决思路: 尝试1.通过重启服务的方式启动数 ...
- android:Faild to install,你的主机中的软件终止了一个连接错误解决
当在用真机调试android程序时出现Faild to install,你的主机中的软件终止了一个连接错误时可以这样解决: 在手机开启usb调试和安装未知来源软件的情况下: 1:先查进入任务管理器查看 ...
- 连接字符串中Min Pool Size的理解是错误,超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
Min Pool Size的理解是错误的 假设我们在一个ASP.NET应用程序的连接字符串中将Min Pool Size设置为30: <add name="cnblogs" ...
- WebSphere中数据源连接池太小导致的连接超时错误记录
WebSphere中数据源连接池太小导致的连接超时错误记录. 应用连接超时错误信息: [// ::: CST] webapp E com.ibm.ws.webcontainer.webapp.WebA ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- Field 'id' doesn't have a default value(jdbc连接错误)
JDBC 连接错误: 编写数据库连接增添数据时,出现以下错误: error : java.sql.SQLException: Field 'id' doesn't have a default val ...
- ASP.NET 5探险(1):Azure中配置连接字符串、独立项目执行EF7数据迁移
(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注.) 题记:我开始把ASP.NET 5用于生产系统开发已经有1个多月了,也填了一些坑积累了一些经验,从今天开始会陆陆续 ...
- 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...
- MSSQL AlwaysOn中的“主角色中的连接”和“可读辅助副本”初探
一.开篇 在进行配置只读路由的时候,需要进行配置可用性组中的可用性副本,如下如所示: 每一项都是啥意思可以看看这个链接 https://msdn.microsoft.com/zh-cn/library ...
随机推荐
- [转]谈谈Linux下动态库查找路径的问题
http://blog.chinaunix.net/uid-23069658-id-4028681.html 学习到了一个阶段之后,就需要不断的总结.沉淀.清零,然后才能继续“上路”.回想起自己当年刚 ...
- C++之异常处理
C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...
- 使用Audio API设计绚丽的HTML5音乐播放器
HTML5 有两个很炫的元素,就是Audio和 Video,可以用他们在页面上创建音频播放器和视频播放器,制作一些效果很不错的应用. 无论是视屏还是音频,都是一个容器文件,包含了一些音频轨道,视频轨道 ...
- SQL Server计算列
计算列由可以使用同一表中的其他列的表达式计算得来.表达式可以是非计算列的列名.常量.函数,也可以是用一个或多个运算符连接的上述元素的任意组合.表达式不能为子查询. 例如,在 AdventureWork ...
- python学习【第一篇】python介绍
python发展历史 起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计算机硕士学位.然而,尽管他算得上是一位数学家,但他更加享受 ...
- globalToLocal和localToGlobal
官方API: groupOut全局坐标(50,50) gourpIn全局坐标(100,100),并嵌套在groupOut里 btn全局坐标(150,150),并嵌套在groupIn里 获取组件全局坐标 ...
- springMVC问题
网站中springmvc.xml配置: <bean id="viewResolver" class="org.springframework.web.servlet ...
- 后端程序员如何玩转AJAX
1.原生的Ajax入门 (感觉很是繁琐,所以一般我们都是用简单的方式) 创建一个核心对象 XMLHttpRequest var xmlhttp; if (window.XMLHttpRequest) ...
- ERROR in [copy-webpack-plugin] unable to locate "D:/xxx/xxx/xxx"
vue打包的时候npm run build报错 ERROR in [copy-webpack-plugin] unable to locate "D:/xxx/xxx/xxx" 这 ...
- Code Forces 645B Mischievous Mess Makers
It is a balmy spring afternoon, and Farmer John's n cows are ruminating about link-cut cacti in thei ...