delorie.com/archives/browse.cgi | search |
X-Spam-Check-By: | sourceware.org |
Message-ID: | <704018110701031248i5c6f1742t6eb6b5c0285d3255@mail.gmail.com> |
Date: | Wed, 3 Jan 2007 15:48:13 -0500 |
From: | "Aaron Baughman" <aaron DOT baughman AT gmail DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | dll to LIB -- then link error |
MIME-Version: | 1.0 |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
I am working on a problem regarding creating a dll from c source code of which I have written (JNI routines) along with linking to a commercial dll that does contain a .def or .a file. My OS is winXP and I am using cygwin 2.510.2.2. The steps I am going through to create the lib: (1) Use Borland's command line tool impdef to create a definition file. impdef file1.def file1.dll (2) Use cygwin's command line tool, dlltool, to create imprt library files for each dll that is used. dlltool --dllname file1.dll --def file1.def --output-lib file1.a I also tried the command with the -k command. (3) Placed all of the .a libraries within the cygwin\usr\lib\w32api directory (4) Attempt to create a dll containing my c code while linking to file1.dll gcc -mno-cygwin -I"\\cygdrive\\c\\include\\Windows" -I"\\cygdrive\\c\\j2sdk1.4.2_13\\include" -I"\\cygdrive\\c\\j2sdk1.4.2_13\\include\\win32" -I"\\cygdrive\\c\\Temp\\cygwin\\usr\\lib\\w32api" -I"\\cygdrive\\c\\Temp\\cygwin\\home\\user\\dll" -W1,--add-stdcall-alias -shared -o file1.dll source1.c source2.c "\\cygdrive\\c\\include\\Windows" = contains all of the .h files describing the commercial dll's that I am including in my C source "\\cygdrive\\c\\j2sdk1.4.2_13\\include" = contains the jni.h file from sun "\\cygdrive\\c\\j2sdk1.4.2_13\\include\\win32" = contains the jni_md.h file from sun "\\cygdrive\\c\\Temp\\cygwin\\usr\\lib\\w32api" = contains the .a file I created in step 2 "\\cygdrive\\c\\Temp\\cygwin\\home\\user\\dll" = contains the dll's from the commerical company (file1.dll) I recieve the following errors: ...source2.c:(.text+0x3):undefined reference to '_function AT 4' ...source2.c:(.text+0x3e):undefined reference to '_function2 AT 4' ...source2.c:(.text+0x7e):undefined reference to '_function3 AT 8' ...source2.c:(.text+0xc5):undefined reference to '_function4 AT 0' The .def file looks like: LIBRARY file1.dll EXPORTS function AT 1 function2 AT 2 function3 AT 3 function4 AT 4 I would graciously appreciate any help. Regards, Aaron. -- 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/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |