Wednesday, February 18, 2009

Make the DLL compiled-linked with GCC under Cygwin valid and acceptable for Microsoft Visual Studio

First of all, we need to have the DLL and DEF files generated by GCC. Here is the command to do so.
Assuming we have foo.c
gcc -mno-cygwin -shared -o foo.dll foo.c -Wl,--output-def,foo.def,--out-implib,libfoo.a
The output files are foo.dll, libfoo.a, foo.def.
Second, using Microsoft Library Manager lib.exe utility to generate the foo.lib with foo.def. Here is the command:
lib.exe /machine:i386 /def:foo.def
Then we will get a foo.lib
Now, we are ready to use it in the Visual Studio's Project.
All you need to do is to add the foo.lib to Linker->Input->Additional Dependencies field and put foo.lib and foo.dll in your project's folder.
P.S. If you cannot find lib.exe or fail to launch lib.exe, check the PATH of your System Variables. (right click on My Computer->Properties->Advanced tab->Environment Variables->System Variables)
Make sure C:\Program Files\Microsoft Visual Studio 8\VC\bin and C:\Program Files\Microsoft Visual Studio 8\Common7\IDE are there in the PATH.

1 comment:

NICK said...

那請問喔,如果是MS編出來的dll
可以在cygwin使用嗎?

Check clients which connect to Mac OS X Wi-Fi Internet Sharing

arp -i bridge100 -a bridge100 may be different on your Mac OSX