9

我想在 Windows 上构建一个静态库(*.LIB 文件)GNU libiconv,以便与 Visual C++ 中的其他库一起使用。我正在使用的其他库是使用“多线程 DLL”(/MD)运行时选项构建的。因此,我需要使用相同的选项构建 libiconv。

问题是libiconv使用 GNU 构建系统,我想用 /MD 选项编译。你可以在这里看到 libiconv 的源结构:
http ://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv

Zlatkovic 先生维护GNU libiconvlibxml2的 windows 端口

你可以在这里看到它们:

ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip

我不能使用他的端口。我需要从最新版本的 libiconv-1.13 构建。我想知道这家伙是怎么移植的?有人可以告诉我如何构建 *.lib 并使用 MSVC 编译它吗?

编辑:

实际上,我需要构建更多具有相同设置的 gnu 库。所以,如果我得到一个图书馆的解决方案。我可以为所有其他人做同样的事情。

4

4 回答 4

9

我在代码项目中发现 PARK Youngho 的How to Build libiconv with Microsoft Visual Studio over the Code Project完整且干净(适用于 VS2010 和 GNU libiconv 1.14)。

于 2012-04-17T14:54:28.550 回答
3

对您的回答稍加补充。我遇到了同样的问题,发现 MinGW + MSYS 解决方案非常完美。

不过,我需要更进一步并生成 .lib 文件,以便能够与生成的 dll 链接。

这是我发现的:

  • 使用 dumpbin(Visual Studio 工具)从 dll 生成 .def 文件。

  • 使用 lib 程序从 .def 生成 .lib 文件(也是 Visual Studio 工具)

这允许您在适当的情况下指定一些链接标志。此处详细说明的所有内容(我不是此方法的作者): http ://wiki.videolan.org/GenerateLibFromDll

我还意识到这对 lib/dll 可以与 MD 和 MDd 库链接。

希望可以帮助找到这篇文章的人,就像它帮助了我一样。

-大卫

于 2011-01-03T16:43:46.257 回答
2

我是OP。MSYS正是我正在寻找的东西。

只需安装包含 shell sh.exe&make.exe的 MinGW & MSYS,您可以使用它配置和生成一个Makefile,之后您可以使用 make.exe 运行它。

就这么简单。

于 2010-05-06T04:13:01.707 回答
1

如果需要,使用MinGW使用 Msys 为环境编译它们。根据邮件列表,MinGW 的 .a 文件显然与 .lib 文件格式相同(只需重命名)。您可能需要先检查 iconv 静态库是否已包含在 MinGW 下载/文件系统中。

编辑:它在 msys (C:\msys\1.0\lib) 中,还有:

  • libiconv.a
  • libiconv.dll.a
  • libiconv.la

并且另外

  • libiconv-2.dll(在 C:\msys\1.0\local\bin 中)

编辑:你需要的 libiconv 在这里吗?这些版本似乎有 MSVC makefile :) http://www.opensource.apple.com/source/libiconv/

于 2010-04-28T22:03:38.927 回答