views:

440

answers:

3

Hello,

I want to build a static library (*.LIB file) GNU libiconv on windows to be used with other libraries in Visual C++. Other libraries I'm using are built with "MultiThreaded DLL" (/MD) Runtime option. So, I need to build libiconv with the same option.

Problem is the libiconv uses GNU build system and I want to compile with /MD option. You can see the source structure of libiconv here: http://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv

Mr. Zlatkovic maintains the windows port of GNU libiconv for libxml2

you can see them here:

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

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

I cannot use his port. I need to build from the latest version of libiconv-1.13. I wonder how this guy has ported it? Can some one please tell me how to build *.lib from this and compile it using MSVC?

EDIT:

Actually, I need to build few more gnu libraries with same settings. So, if I get solution for one library. I can do the same for all others.

A: 

Hi, compile them using MinGW using Msys for the environment if needed. MinGW's .a files are apparently, according to the mailing list, the same format as .lib files (just do a rename). You might want to check first to see if the iconv static library is included already in the MinGW download / filesystem.

Edit: it's in msys (C:\msys\1.0\lib), along with:

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

and additionally

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

Edit: is it in here, the libiconv you need? these versions seem to have MSVC makefiles :) http://www.opensource.apple.com/source/libiconv/

Chris Dennett
but how would I run `./configure` which is a shell script? More over, how would I give "MultiThreaded DLL" Runtime option to g++ compiler of MinGW.
claws
You might not face the same issue with the MinGW toolchain, which the developer is trying to avoid. Basically, the multithreaded option for the MSVC compiler / linker allows the DLL to use multiple heaps rather than a single heap, from a quick glance, and prevents problems from occuring.
Chris Dennett
claws
Thank you for providing alternate ways. But I need to know the way to do this because I need to build other GNU libs on MSVC with /MD
claws
Did you check out http://www.opensource.apple.com/source/libiconv/ to see if it had the version you need? The numbering seems a bit strange though.
Chris Dennett
Also, try copying Makefile.msvc from an older version of libiconv to the newer version, and see if that works. I'll try and guide you through any problems. Use the last version that has Makefile.msvc in it before it was removed.
Chris Dennett
Chris Dennett
I don't think you understood what I'm trying to say. I don't want to take the method you are suggesting. Because I need to compile few more gnu libraries for which there are no Makefile.msvc. So please try to suggest me some other way.
claws
A: 

I'm the OP. MSYS is the exact thing what I was looking for.

Just install MinGW & MSYS which contains shell sh.exe & make.exewith which you can configure and generate a Makefile after that you can use make.exe to run it.

Its as simple as that.

claws
A: 

Hi Claw,

I have the same problem, I have to compile iconv with MSVC, no chance to switch to gnu toolchain. Have you managed to build iconv with msvc? I use VS2008sp1.

Thanbk you for you help,

Torben

Torben
claws