C++ 在Win32中构建最新的iconv和libxml2二进制文件

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,没有任何问题,但我看到这些库没有像其他库那样得到太多支持或指导。

我试图让MinGW和MSYS正常工作,以便在Windows中构建iconv和libxml2,但我发现./configure和make给出了许多与BSD/Unix相关的错误,这些错误对google来说不够具体,对我来说也不够详细。任何人都可以完成在Win32机器上构建iconv和libxml2.dll/.lib所需的一些步骤吗

我正在更新一些软件的库,今天我整天都在摆弄这个,还没弄明白。我得到了最新的libpng、zlib和curl,没有任何问题,但我看到这些库没有像其他库那样得到太多支持或指导。任何帮助都将不胜感激,提前感谢您的时间


James

libxml2提供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解决方案的细节,以帮助感兴趣的人。它做得相当糟糕;例如,发布配置根本没有正确完成,您必须这样做。如果你想使用它,我给你两个建议:

  • 如果路径不正确,请首先删除项目iconv。然后添加您的项目文件;由于旧文件中保留了一个引用,因此编译时仍会出现警告。要抑制此警告,请使用文本编辑器编辑.vcxproj,将最后一个项目组的
    ProjectReference Include
    路径更改为正确的路径,以及此节点的
    Project
    项(将其替换为iconv vcxproj的ProjectGuid)

  • 与Ws2_32.lib链接使用静态库libxml2.lib的任何应用程序

  • 这些都是我经历过的一些错误,希望这能帮助任何想在VS.下重建libxml2的人。

    Environment mingw32
    在这篇文章的帮助下,我能够编译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对我来说失败了,即使经过多次尝试和变通。