我目前正在尝试将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]致命:无效的目标文件'/ 72'
我已经尝试过使用libiconvStatic.lib的32位和64位版本。
您知道为什么.lib无法识别以及如何解决此问题?或者在Windows(和C ++ Builder)中使用iconv的任何其他方式?
谢谢。
答案 0 :(得分:3)
如评论中所述:您应该直接使用C ++ Builder构建库,因为MSVC和C ++ Builder之间的目标文件格式不同。
或者,您可以使用MSVC构建库的动态版本,并且只需implib libiconv.lib libiconv.dll
从DLL生成与C ++ Builder兼容的库。