How to link with third party libraries using gcc

Larry Hall (Cygwin) reply-to-list-only-lh@cygwin.com
Fri Jun 29 21:59:00 GMT 2007


Bob McConnell wrote:
>> -----Original Message-----
>> From: cygwin-owner@cygwin.com 
>> [mailto:cygwin-owner@cygwin.com] On Behalf Of Larry Hall (Cygwin)
>> Sent: Friday, June 29, 2007 2:37 PM
>> To: cygwin@cygwin.com
>> Subject: Re: How to link with third party libraries using gcc
>>
>> Bob McConnell wrote:
>>
>> <snip>
>>> Whether the libraries are linked dynamic or static is 
>> irrelevant here.
>>> The Windows libraries are stored in a different object 
>> format than the
>>> Unix and Cygwin libraries, and probably have different calling
>> The format of Windows and Cygwin libraries are the same.
>>
>>> conventions. You can't use MS-Windows libraries without the 
>> appropriate
>>> tools, usually that means Visual Studio. Cygwin made no 
>> attempt to be
>>
>> You can use MS-Windows libraries with Cygwin.  Look under the 
>> hood of Cygwin
>> and you'll see Windows API calls.  The typical problems are 
>> matching the
>> calling conventions and managing resources (heap, etc), as 
>> Dave has already
>> pointed out.  But it's possible, as Cygwin itself illustrates.
> 
> So you are suggesting that with the proper header files and a little
> fiddling I could build and run a Visual Studio.Net project on top of the
> cygwin DLL and use additional Cygwin libraries in it? That is what it


It is possible to have a Windows program link to and use cygwin1.dll but
that's not what I was saying.  I was saying that it's possible build a
Cygwin app that uses Windows libs.


> sounds like to me. As an application programmer, I don't look under the
> hood. I leave that to the kernel programmers that understand the
> intricacies involved. I already have enough trouble debugging some
> hardware vendors' libraries.


It's not always easy.  Check that. It's often hard at least!


> I have attempted to go the other way, with no success. I tried to use
> Cygwin B.20 to write some MS-Windows services a few years ago. One was a
> simple TCP/IP socket proxy, and I never could get it to talk with the
> Service Control Manager. It took about two hours to get it running as a
> daemon on Slackware and half a day to port it into MSVC6.


Yes, this is the harder way to go.  If you can, you're better off porting
it with Mingw.  However, if you're curious about what's involved here,
take a look at the following FAQ link and/or documentation in the docs
directory of the Cygwin source.

<http://cygwin.com/faq/faq-nochunks.html#faq.programming.msvs-mingw>


-- 
Larry Hall                              http://www.rfk.com
RFK Partners, Inc.                      (508) 893-9779 - RFK Office
216 Dalton Rd.                          (508) 893-9889 - FAX
Holliston, MA 01746

_____________________________________________________________________

A: Yes.
 > Q: Are you sure?
 >> A: Because it reverses the logical flow of conversation.
 >>> Q: Why is top posting annoying in email?

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



More information about the Cygwin mailing list