我想在Windows上构建一个静态库(* .LIB文件)GNU libiconv,以便与Visual C ++中的其他库一起使用。我正在使用的其他库是使用“MultiThreaded DLL”(/ MD)运行时选项构建的。所以,我需要使用相同的选项构建libiconv。
问题是libiconv
使用GNU构建系统,我想用/ MD选项编译。你可以在这里看到libiconv的源结构:
http://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv
先生。 Zlatkovic为libxml2维护GNU libiconv
的Windows端口
你可以在这里看到它们:
ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip
我无法使用他的端口。我需要从最新版本的libiconv-1.13构建。我想知道这家伙是如何移植它的?有人可以告诉我如何从中构建* .lib并使用MSVC编译它吗?
修改
实际上,我需要构建几个具有相同设置的gnu库。所以,如果我得到一个库的解决方案。我可以为所有其他人做同样的事情。
答案 0 :(得分:9)
我发现PARK Youngho的How to Build libiconv with Microsoft Visual Studio在 The Code Project 上完成并且干净(对于VS2010和GNU libiconv 1.14)。
答案 1 :(得分:3)
你的回答有点补充。 我遇到了同样的问题,发现MinGW + MSYS解决方案非常完美。
尽管如此,我还需要更进一步,并生成.lib文件,以便能够与生成的dll链接。
这是我发现的:
使用dumpbin(Visual Studio工具)从dll生成.def文件。
使用lib程序从(.def)生成.lib文件(Visual Studio工具)
这允许您指定一些链接标志(如果适用)。 这里详述的一切(我不是这个方法的作者): http://wiki.videolan.org/GenerateLibFromDll
我也意识到这个lib / dll对可以与MD和MDd库链接。
希望能帮助找到这篇文章的人,就像它帮助了我一样。
-David
答案 2 :(得分:1)
如果需要,使用Msys为环境编译MinGW。根据邮件列表,MinGW的.a文件显然与.lib文件的格式相同(只是重命名)。您可能想先检查一下minGW下载/文件系统中是否已包含iconv静态库。
编辑:它在msys(C:\ msys \ 1.0 \ lib)中,以及:
另外
编辑:它在这里,您需要的libiconv?这些版本似乎有MSVC makefile :) http://www.opensource.apple.com/source/libiconv/
答案 3 :(得分:1)
我是OP。我正在寻找的是MSYS。
只需安装MinGW& MSYS包含shell sh.exe
&您可以使用make.exe
配置并生成Makefile
,然后您可以使用make.exe来运行它。
就这么简单。