delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/08/19/12:00:06

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
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
Date: Fri, 19 Aug 2005 11:59:47 -0400 (EDT)
From: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: Herb Martin <HerbM AT learnquick DOT com>
cc: cygwin AT cygwin DOT com
Subject: RE: Trying to build crm114 (20050721) under CygWin 1.5.18-1
In-Reply-To: <EILH7OR-0006DK-50@mail2.learnquick.com>
Message-ID: <Pine.GSO.4.61.0508191151210.16057@slinky.cs.nyu.edu>
References: <EILH7OR-0006DK-50 AT mail2 DOT learnquick DOT com>
MIME-Version: 1.0

On Fri, 19 Aug 2005, Herb Martin wrote:

> > From Behalf Of Brian Dessent
> >
> > > gcc -static -L/usr/local/lib:/lib  -lintl -liconv  crm_main.o
> > > crm_compiler.o crm_errorhandlers.o crm_exec_engine.o crm_p
> <snip a bunch of .o references>
> > >   -lm -ltre -o crm114_tre
> > >
> > /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld:
> > > cannot find -ltre
> > > collect2: ld returned 1 exit status
> > > make[1]: *** [crm114_tre] Error 1
>
> > Now you've got the order wrong.  The objects must be
> > specified in dependent order, which generally means libraries
> > after objects.
>
> Order of what specifically?  I am modifying these lines in
> the Makefile:
>
> LDFLAGS += -L/usr/local/lib
> #LIBS += -lintl -liconv
>
> I uncommented the second line and added various
> combinations of -L to the first, and -ltre to the
> second.
>
> LDFLAGS += -L/usr/local/lib
> LIBS += -ltre -lintl -liconv
>   	(and trying -ltre at the end; is THIS the order
> 	you were referencing?)

No...

> The dependency tha that is failing looks like this:
>
> crm114_tre: $(OFILES) crmregex_tre.o
> 	#   Note: if you haven't installed TRElib, the next step
> 	#   will get an error.
> 	#       For TRElib, look in the TRE sub-directory of this kit.
> 	#   Remember to use ./configure --enable-static for static libs.
> 	#   You will also need to add /usr/local/lib to /etc/ld.so.conf,
> 	#   and then run ldconfig (as root) to set the library up and make
> 	#   the library known to the static and runtime linkers.
> 	$(CC) $(LDFLAGS) $(LIBS) $(OFILES) \
                         ^^^^^^^^^^^^^^^^^
...This is.  The Makefile is buggy -- $(LIBS) should go *after* $(OFILES).

> 	  crmregex_tre.o \
> 	  -lm -ltre -o crm114_tre
> [snip]

I'm surprised the Makefile is not using the default link rule, e.g.,
something like

LDFLAGS += -L/usr/local/lib
LDLIBS += -lm -ltre
LDLIBS += -lintl -liconv
crm114_tre: $(OFILES) crmregex_tre.o
	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@

which would do the right thing w.r.t. library order, etc...
	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!

If there's any real truth it's that the entire multidimensional infinity
of the Universe is almost certainly being run by a bunch of maniacs. /DA

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019