Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Wed, 3 Nov 2004 16:30:02 -0500 (EST) From: Igor Pechtchanski Reply-To: cygwin AT cygwin DOT com To: rene DOT nyffenegger AT adp-gmbh DOT ch cc: cygwin AT cygwin DOT com Subject: Re: creating shared object (.so) with gcc under cygwin In-Reply-To: <20041103171139.M29773@adp-gmbh.ch> Message-ID: References: <20041103171139 DOT M29773 AT adp-gmbh DOT ch> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Scanned-By: MIMEDefang 2.39 On Wed, 3 Nov 2004, Rene Nyffenegger wrote: > Hello > > I am trying to create a shared object and use it in a program under > cygwin with gcc. I seem to miss a point. If some kind soul could help > me on that, I'd be very grateful. > > Here's the code for the shared object (calc_mean.c): > > #include "calc_mean.h" > double mean(double a, double b) { > return (a+b) / 2; > } > > Here's its header file (calc_mean.h): > > double mean(double, double); > > > So, I compile that to a .so like so: > > $ gcc -shared -o libmean.so calc_mean.c > > Then, there's main.c that wants to use the shared object: > > #include > #include "calc_mean.h" > > int main(int argc, char* argv[]) { > double v1, v2, m; > v1 = 5.2; > v2 = 7.9; > > m = mean(v1, v2); > > printf("The mean of %3.2f and %3.2f is %3.2f\n", v1, v2, m); > return 0; > } > > I try to compile main.c like so: > > $ gcc main.c -o main -L. -lmean > > However, the following error is returned: > /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld: > cannot find -lmean > collect2: ld returned 1 exit status > > Obviously, I do something wrong here, but I have no idea what that could > be. As Chris recommended, use the ".dll" extension for your shared libs, or you can also build an import lib using $ gcc -shared -o libmean.so -Wl,--out-implib,libmean.dll.a calc_mean.c and your link step should work. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D. '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! "The Sun will pass between the Earth and the Moon tonight for a total Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT -- 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/