【问题标题】:Libiconv C++ BuilderLibiconv C++ 生成器
【发布时间】: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


【解决方案1】:

如 cmets 中所述:您应该直接使用 C++Builder 构建库,因为 MSVC 和 C++Builder 的目标文件格式不同。

或者,您可以使用 MSVC 构建库的动态版本,然后执行 implib libiconv.lib libiconv.dll 以从 DLL 生成 C++Builder 兼容库。

【讨论】:

    猜你喜欢
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 2010-12-10
    • 2021-07-01
    • 2017-03-31
    • 2016-11-11
    相关资源
    最近更新 更多