【发布时间】:2017-03-20 18:03:21
【问题描述】:
我正在尝试在 OSX 上构建 gnu iconv 作为静态库。这不是问题,使用
可以很好地构建./configure --enable-static
make clean && make
但是当我在 libiconv.a 上运行 nm 时,我得到以下结果
...
_libiconv
_libiconv_open_
_libiconv_close_
...
这是有问题的,因为我想使用这个库构建libxml2,它需要以下符号
iconv
iconv_open
iconv_close
查看头文件,似乎这两个符号名称的区别在于是否定义了LIBICONV_PLUG。但是当我运行 make as 时
make clean && make CPPFLAGS=-DLIBICONV_PLUG
我收到错误,因为有几件事没有定义,例如 ICONV_GET_DISCARD_ILSEQ 和 ICONV_SET_HOOKS。再看头文件,只有在没有定义LIBICONV_PLUG的情况下才定义这些。
我的问题是,我是否正确使用了 LIBICONV_PLUG?有没有其他方法可以获取包含我需要的符号的静态库?我应该遍历未定义的符号并自己手动定义它们吗?
【问题讨论】: