Libiconv C++ Builder

3

我目前正在尝试将ZBar库集成到使用C++ Builder(XE6)构建的应用程序中。但是,ZBar库依赖于iconv,在Windows上原本不可用,因此我设法获取了一个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?
谢谢。

你是如何创建“libiconvStatic.lib”的?它是使用C++Builder还是其他编译器创建的? - Rodrigo Gómez
我下载了它,它是用MVSC编译的。它不兼容吗? - mvezinet
1
是的,使用其他编译器创建的库或对象与C++Builder的库不兼容,至少大部分如此。我猜这就是你遇到问题的原因。如果你能用C++Builder重新构建该库,那么它应该可以工作。或者,你可以使用该库的动态版本,并从DLL中implib所需的lib以供C++Builder使用。 - Rodrigo Gómez
1个回答

3

如评论中所述:您应该直接使用C++Builder构建库,因为MSVC和C++Builder之间的对象文件格式不同。

另外,您可以使用MSVC构建库的动态版本,只需执行implib libiconv.lib libiconv.dll从DLL生成与C++Builder兼容的库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接