Mail Archives: cygwin/2007/06/26/13:13:43
> From: cygwin-owner AT cygwin DOT com
> [mailto:cygwin-owner AT cygwin DOT com] On Behalf Of Brian Dessent
> Sent: Tuesday, June 26, 2007 12:22 PM
> To: cygwin AT cygwin DOT com
> Subject: Re: undefined reference to `__imp___iob'
>
> "Frederich, Eric P21322" wrote:
>
> > Are there any tips to compile compatible libraries with
> msys / cygwin?
> > Is it even possible?
> > Am I missing a gcc option?
>
> No, it's not possible.
>
> Cygwin libraries use the Cygwin runtime. MinGW/MSYS libraries use the
> Microsoft (MSVCRT) runtime. These are two inherently different and
> incompatible implementations of a C runtime, so you can't
> link a program
> that uses both and expect it to work.
>
> It is technically possible if you are very sure of what you're doing,
> but this would involve making sure that all C functions are
> resolved to
> the correct library. For example, printf() in the MinGW code must go
> to MSVCRT, printf() in the Cygwin code must go to
> cygwin1.dll. The only
> way I can think to do this is with LoadLibrary()/GetProcAddress() and
> function pointers for everything. It also would mean that no
> C library
> data structures could be passed between the two, such as file
> descriptors, FILE *, struct stat, etc. It would be an extremely
> inconvent way to write code, and it would be much easier and
> cleaner to
> just compile all code as Cygwin code or all code as native (MSVCRT)
> code.
>
> Brian
Thanks for your reply.
Does everything you say hold true even if I compile with the -mno-cygwin
option?
The program I was talking about linked to 4 libraries so I made a small
main.c and just tried adding one library at a time. I wrote a small
program to link against a single library and it worked. I was passing
around FILE pointers and that worked okay too. From main.c I did the
fopen and fclose and wrote to the file using the msys/mingw compiled
library. Was I just lucky?
When I tried adding in another library I got those errors again.
Apparently I'm confused. I thought that when I compile with -mno-cygwin
it was the same as using msys/mingw.
Thanks,
~Eric
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -