This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

--
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]