xercesc的一次调试

1、首先下载xercesc。地址:http://xerces.apache.org/xerces-c/install-2.html#Windows

最开始我选择了最近的一个版本Xerces-c++ 3.1.1。发现里面没有需要的DOMWriter这个类。于是只能下了另外一个,Xerces-c++ 2.8.0的vc-8_0。解压,将bin目录加入到系统path。


2、一个例子。http://blog.chinaunix.net/uid-667478-id-2077419.html


3、编译,出现的问题

3.1 找不到lib文件,这个比较好解决,就是将需要的lib文件加到目录里面。

3.2 找不到dll文件,在Xerces-c++ 2.8.0下面的bin里面的dll文件放到dubug文件夹里面。

3.3 调试器:: 在进程加载过程中引发了未处理的无法继续的 STATUS_DLL_NOT_FOUND 异常。这个在我的vs2010它不指出是缺少那个dll文件,最后在另外一个vs2010上面才得知缺少了MSVR70D.DLL 。然后在网上下载了一个,放在了system32里面。

这种情况比较的做法是用dll查看器,看看我们的dll用了哪些dll。然后就知道我们缺少那个dll了。

3.4 无法定位程序输入点与xerces-c_2_7.dll.这个问题是因为之前我有下载过另外一个版本的Xerces-c++ 2.8.0,两个一起用了,然后就混淆了。不知道那个是那个了。解决办法是所有的dll都用我们需要的那个版本的。

参考:http://blog.sina.com.cn/s/blog_6163bdeb0100qtp5.html

3.5 LDR: LdrpWalkImportDescriptor() failed to probe D:\C\domtest\domtest\Debug\xerces-c_2_8D.dll for its manifest, ntstatus 0xc0150002
调试器:: 在进程加载过程中引发了未处理的无法继续的异常

这个问题在网上查了,在http://blog.csdn.net/evilswords/article/details/5698851看到可以在windows事件查找问题。然后这样的问题貌似在网上还是比较多的,大体解决办法是一样的。就是下载一个VS2005的Redistributable 。地址:http://microdog.blog.163.com/blog/static/3598089720096672520515/

我的电脑是把VS2010以下的版本都卸载了。真是苦了我。

问题仍然没有解决。应该是其他什么问题。终于在另外一个博客看到解决办法。http://blog.csdn.net/crazyingbird/article/details/7373132。

到第一台机子上的vs2005的安装目录下,搜索名字中包含串Microsoft.VC80.DebugCRT的文件,共有3个dll文件msvcm80d.dllmsvcp80d.dllmsvcr80d.dll和一个manifest文件(Microsoft.VC80.DebugCRT.manifest),拷贝到另一台机
子上的工程可执行文件目录下,问题就解决了。

我的问题跟他的一样。所以解决。


调试一个程序就用了这么久。很多问题真的还是要多见。以后知道了,第一反应就知道该怎么做了。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这句话在.bashrc文件中设置了环境变量 LD_LIBRARY_PATH 的值。环境变量 LD_LIBRARY_PATH 是用于指定系统在运行可执行文件时搜索共享库的路径。 让我们逐步解释这句话的含义: 1. `export`: 这个关键字用于将变量导出到子进程的环境中,使其在子进程中也可见。 2. `LD_LIBRARY_PATH`: 这是一个系统环境变量,用于指定共享库搜索路径。 3. `$LD_LIBRARY_PATH`: 这是一个引用已经存在的 LD_LIBRARY_PATH 环境变量的方式。通过 `$` 符号前缀,我们可以获取已经存在的 LD_LIBRARY_PATH 变量的值。 4. `:/data/liuxin/Cpp/demo/xercesc/lib/:/data/liuxin/Cpp/demo/boost/lib/`: 这是将两个路径添加到 LD_LIBRARY_PATH 变量的值中。使用冒号分隔不同的路径,表示将多个路径添加到搜索路径列表中。 - `/data/liuxin/Cpp/demo/xercesc/lib/`: 这是一个路径,指定了 xercesc 库的安装位置。 - `/data/liuxin/Cpp/demo/boost/lib/`: 这是另一个路径,指定了 boost 库的安装位置。 通过将这两个路径添加到 LD_LIBRARY_PATH 中,当系统在运行可执行文件时,会在默认的共享库搜索路径之外,额外搜索这两个路径下的共享库文件。 这句话的目的是确保系统在运行时能够找到指定路径下的共享库文件。这对于依赖于这些库的可执行文件非常重要,因为它们需要在运行时加载这些共享库。 希望以上解释对你有帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值