我正在编写一个链接到系统上libxml2的简单应用程序。它几乎适用于所有用户,但是一个用户从网络上读取特定的xml文件时报告了此错误:

Unsupported encoding ISO8859-1

此错误通常表明libxml2是--without-iconv构建的。有什么方法可以显式测试系统上的libxml2动态库是否具有iconv支持?

最佳答案

我可以想到两种方法:

  • 编写一个简短的简单测试程序,该程序使用xml的iconv功能。如果不存在,它的行为应有所不同。这就是GNU配置软件的功能-它通过使用它们来测试存在的功能。
  • 这是一个技巧-使用iconv查找libxml中存在的通用iconv符号,但如果缺少iconv,则找不到此符号。使用nm之类的实用程序列出库文件中的符号。

  • 或者只是通过将可运行的libxml与您的应用程序打包来避免此问题。

    关于c - 在运行时检查libxml2.so的构建参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30798503/

    10-12 14:03