【发布时间】:2015-10-13 18:17:15
【问题描述】:
我目前正在尝试将 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 错误] 致命:无效的目标文件 '/72'
我已经尝试了 libiconvStatic.lib 的 32 位和 64 位版本。
你知道为什么.lib 无法识别以及如何解决这个问题吗?或者在 Windows(和 C++ Builder)中使用 iconv 的任何其他方式?
谢谢。
【问题讨论】:
-
你是如何创建“libiconvStatic.lib”的?它是用 C++Builder 还是用其他编译器创建的?
-
我下载了,是用MVSC编译的。不兼容吗?
-
是的,使用其他编译器创建的库或对象与 C++Builder 的不兼容,至少其中大多数是不兼容的。我想这就是你的问题的原因。如果您可以使用 C++Builder 重建库,那么它应该可以工作。或者,您可以使用该库的动态版本,并从 DLL 中隐含 C++Builder 所需的库。
标签: c++ windows c++builder iconv