Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <3BE43C96.80900@ece.gatech.edu> Date: Sat, 03 Nov 2001 13:51:02 -0500 From: Charles Wilson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1 X-Accept-Language: en-us MIME-Version: 1.0 To: Andreas Eibach CC: Ross Smith , cygwin AT cygwin DOT com Subject: Re: 1.3.3: ld: cannot find a library that is there! References: <00b701c1648f$30519b40$e996603e AT andy> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Look, .so files DO NOT WORK on cygwin. I am assuming the following: 1) you are trying to build i386 binaries that run under windows/cygwin 2) you have not implemented your own binary relocatable library runtime loader As already stated in this thread, cygwin uses the native windows pei-386 DLL format for shared libraries. It relies on the native windows runtime-loader (WRL) to load these DLL's at runtime. The WRL ONLY understands DLLs -- it only searches for files with the .dll ending (*not* .so) Don't try to rename a ".so" file to a ".dll" -- it doesn't work that way. True .so files are ELF-format relocatable shared libraries; they may contain x86 instructions, but windows can't run it (although linux can). Solution: stop waffling about "ldconfig" (WRL doesn't use ld.so or ldconfig) or libtool -- build a static lib and use that. Otherwise, search this mailing list for "How to build a DLL" and be prepared for much work. You need to do a *real* port. --Chuck Andreas Eibach wrote: > ----- Original Message ----- > From: "Ross Smith" > To: > Sent: Thursday, November 01, 2001 10:52 PM > Subject: 1.3.3: ld: cannot find a library that is there! > > > >>I'm compiling IBM's icu 2.0 (http://oss.software.ibm.com/icu/) from cvs as >> > a precursor to porting xerces 1.5.2 to cygwin. > >>I'm using cygwin 1.3.3 with all latest versions of everything. >> >>make stops at the first link, with: >> >> >> > c++ -DHAVE_CONFIG_H -I. -DICU_DATA_DIR=\"/usr/local/lib/icu/2.0/\" -DUDATA_S > O_SUFFIX=\".so\" -DU_COMMON_LIBNAME=\"libicuuc.so.20.0\" > >> -DUDATA_FILES -g -O2 -shared -Wl,-soname -Wl,libicuuc.so.20 -o >> > libicuuc.so.20.0 putil.o ... > >>convert.o -L../data -L../stubdata -licudata -lm >>.../ld: cannot find -licudata >> >>I verified that ../stubdata/libicudata.so.lnk exists, and it links to >> > ../stubdata/libicudt20l.so. > >>So I tried to fix it with: >> >>% cd stubdata >>% rm libicudata.so >>% cp libicudt20l.so libicudata.so >> >>No luck. >> >>So I copied libicudata.so into the working directory, and added -L. to the >> > command line. > >>% cd common >>% cp ../stubdata/libicudata.so . >>% make >> > > You *DID* remember to run ldconfig -v after these modifications, didn't you? > > Andreas > > > -- > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple > Bug reporting: http://cygwin.com/bugs.html > Documentation: http://cygwin.com/docs.html > FAQ: http://cygwin.com/faq/ > > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/