在运行时检查libxml2.so的构建参数

时间:2015-06-12 08:20:42

标签: c linux gcc libxml2 autoconf

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

--without-iconv

此错误通常表示libxml2已构建#include <iostream> using namespace std; int main(){ int n =1 , *p; p = &n; char aString[] = {"student"}; for (int i = 0; i<5; i++) cout<< "i = "<< i << "n*n = "<<n*n<< "n++ = "<< n++<< " *p "<<endl; system ("pause"); return 0; } 。有没有什么办法可以显式测试系统上的libxml2动态库是否支持iconv?

1 个答案:

答案 0 :(得分:1)

我可以想到两种方法:

  1. 编写一个简短的测试程序,该程序使用xml的iconv功能。如果它不存在,它应该表现不同。这就是GNU配置软件所做的事情 - 它通过练习来测试存在的功能。
  2. 这是一个黑客 - 找到libxml中带有iconv的常见iconv符号,但如果缺少iconv则不会。使用 nm 之类的实用程序列出库文件中的符号。
  3. 或者通过在应用程序中打包一个有效的libxml来避免这个问题。