C++ 在Win32中构建最新的iconv和libxml2二进制文件
我试图让MinGW和MSYS正常工作,以便在Windows中构建iconv和libxml2,但我发现./configure和make给出了许多与BSD/Unix相关的错误,这些错误对google来说不够具体,对我来说也不够详细。任何人都可以完成在Win32机器上构建iconv和libxml2.dll/.lib所需的一些步骤吗 我正在更新一些软件的库,今天我整天都在摆弄这个,还没弄明白。我得到了最新的libpng、zlib和curl,没有任何问题,但我看到这些库没有像其他库那样得到太多支持或指导。任何帮助都将不胜感激,提前感谢您的时间C++ 在Win32中构建最新的iconv和libxml2二进制文件,c++,mingw,libxml2,msys,iconv,C++,Mingw,Libxml2,Msys,Iconv,我试图让MinGW和MSYS正常工作,以便在Windows中构建iconv和libxml2,但我发现./configure和make给出了许多与BSD/Unix相关的错误,这些错误对google来说不够具体,对我来说也不够详细。任何人都可以完成在Win32机器上构建iconv和libxml2.dll/.lib所需的一些步骤吗 我正在更新一些软件的库,今天我整天都在摆弄这个,还没弄明白。我得到了最新的libpng、zlib和curl,没有任何问题,但我看到这些库没有像其他库那样得到太多支持或指导。
Jameslibxml2提供JavaScript配置。在win32文件夹中查找它。这里还有一个单独的自述文件。构建libxml2的示例:
cd win32
cscript.exe configure.js compiler=mingw prefix=D:\soft\Qt\2010.03\mingw debug=yes static=yes
mingw32-make -f Makefile.mingw
我有,它对我有用。你可以在上获得Igor Zlatkovic为windows制作的二进制文件。我意识到我可能正在恢复一个死线程,但是 对我有效的方法是不编译共享lib,而是使用a2dll工具派生它们,如下所示:
./configure--prefix=/mingw--disable shared
制作
安装
a2dll libiconv.a-o iconv.dll
mv-iv iconv.dll/mingw/bin/
您必须先清洁,然后
./configure --host=arm-linux --disable-shared --enable-static CC="arm-linux-gcc" --prefix="/tmp/iconv" --with-configuredir="/tmp/iconv"
make
make install
然后在/tmp/iconv上获取libconv.a我最近从Andrew Marlow(2013年7月)那里找到了一个例子,简要解释了如何在VisualStudio下编译libxml2
libiconv可以按此进行编译,也可以在第一个链接中作为link进行编译
编辑
libxml2的1.14版现在有了一个VS2010解决方案。现在做到这一点非常简单
否则,您可以按照自述文件和Marlow的教程对其他特定于windows的编译器执行相同的操作
编辑
我想在这里写一些关于libxml2v1.14附带的VS2010解决方案的细节,以帮助感兴趣的人。它做得相当糟糕;例如,发布配置根本没有正确完成,您必须这样做。如果你想使用它,我给你两个建议:
ProjectReference Include
路径更改为正确的路径,以及此节点的Project
项(将其替换为iconv vcxproj的ProjectGuid)在这篇文章的帮助下,我能够编译libxml2
在解压后的
win32
目录中执行以下两个步骤
cscript configure.js threads:no static:yes compiler:mingw iconv:no prefix=where_you_want_to_install include=where_your_mingw_include_is lib=where_your_mingw_lib_is debug=yes
然后mingw32 make-f Makefile.mingw
我能够在Windows 7环境下使用mingw上的code::blocks编译和执行示例。
请记住在“项目构建选项”下的“其他链接器选项”框中指定
-lxml2
和-lws2\u 32
标志。谢谢,这对libxml2确实有效,但对于iconv,我希望获得最新的1.13.1并构建该文件,但在任何地方都找不到。我尝试使用Sourceforge上可用的MinGW()命名规范,但如果不做一些修改iconv.dll命名规范的工作,就无法让这些规范正常工作。我不得不这样做,最终让它正常工作。但是,请确保使用mingw32 make和not make。不管出于什么原因,这两个人对我的表现都不一样。可能有路径问题,但它现在正在工作,所以我就不做了。@Jason,原因是make
是用于MSYS环境的,而mingw32 make
是用于本机控制台的。Aaragorn,我确实看到了那些二进制文件,但它们比我目前拥有的旧,他只有1.9.2,我希望有一个更新的版本。我知道它可能适用于旧版本的.dll,但我试图避免依赖于预构建的.dll,并尝试构建自己的.dll。我已经接受了折衷方案,并将使用较旧的版本,尽管我仍然想知道如何在win32上构建iconv。Cygwin和MinGW/MSYS对我来说失败了,即使经过多次尝试和变通。