我目前正在尝试将 ZBar 库集成到一个用 C++ Builder (XE6) 构建的应用程序中。但是,ZBar 库依赖于 Windows 中最初不可用的 iconv,因此我设法获得了用于 Windows 的 iconv 静态库:“libiconvStatic.lib”。
然后我尝试以这种方式将它导入到我的项目中(虽然我不确定第一行是否必要):
#define USING_STATIC_LIBICONV
#include <iconv.h>
#pragma comment (lib, "libiconvStatic.lib")
在文件中调用的来自iconv 的函数是iconv_open()、iconv() 和iconv_close()。
我通过了编译,但从链接器中得到了一个错误:
[ilink64 Error] Fatal : Invalid object file '/72'
我已经尝试过 libiconvStatic.lib 的 32 位和 64 位版本。
您知道为什么无法识别.lib 以及如何解决这个问题吗?或者在 Windows(和 C++ Builder)中使用 iconv 的任何其他方式?
谢谢。
最佳答案
如评论中所述:您应该直接使用 C++Builder 构建库,因为 MSVC 和 C++Builder 的对象文件格式不同。
或者,您可以使用 MSVC 构建库的动态版本,只需执行 implib libiconv.lib libiconv.dll
从 DLL 生成 C++Builder 兼容库。
关于c++ - Libiconv C++ 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587417/