Re: X 4.3.99.902 Compile error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday, January 07 2004 08:04 pm, Jay R. Ashworth wrote:
> On Wed, Jan 07, 2004 at 08:00:29PM -0500, George Socker wrote:
> > On Tuesday, January 06 2004 12:38 pm, JD Ross wrote:
> > > You need libncurses-dev.
> > >
> > > Jay R. Ashworth wrote:
> > > >On Tue, Jan 06, 2004 at 07:06:37AM -0500, Wise, Jeremey wrote:
> > > >>gcc -m32 -o resize -O2 -fno-strength-reduce
> > > >> -fno-strict-aliasing -ansi -pedantic -Wall -Wpointer-arith
> > > >>-Wstrict-prototypes                        -Wmissing-prototypes
> > > >>-Wmissing-declarations                     -Wredundant-decls
> > > >>-Wnested-externs -Wundef     -L../../exports/lib   resize.o
> > > >>xstrings.o      -lncurses -Wl,-rpath-link,../../exports/lib
> > > >>/usr/lib/gcc-lib/i586-suse-linux/3.3.1/../../../../i586-suse-li
> > > >>nux/ bin/ld: cannot find -lncurses
> > > >
> > > >Normal ordinary C compilation eror -- I'm not an X Guy, and I
> > > > can tell you how to fix it.
> > > >
> > > >On second look, that error from ld seems wrong, too; it
> > > > shouldn't be looking for "-lncurses", it should be looking for
> > > > "libncurses".  I'm wondering if that's a thinko in the makefile
> > > > -- perhaps the .o files should be at the end; there isn't
> > > > anything else after xstrings.o, which may be confusing getargs
> > > > in gcc.
> >
> > Actually, it should be "-lncurses". The linker automatically turns
> > given library names into "libxxx.so". If you use "-llibncurses",
> > the linker will look for "liblibncurses.so" and will fail.
>
> I wasn't clear on two points: the -lncurses switch, which *is*
> present on the command line in the makefile, should be causing the
> linker to look for libncurses, *which it clearly is not* from the
> error message.
Actually,  it *is* looking for libncurses.so, despite the error message 
saying -lncurses was not found.
Example
gcc test1.c -lGL1 (which does not exist)
Result: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../
i686-pc-linux-gnu/bin/ld: cannot find -lGL1

Strace -f results - 
[pid  3016] open("/usr/lib/libGL1.so", O_RDONLY) = -1 ENOENT (No such 
file or directory)               ^^^^^^^^^
				Note that is is looking libGL1.so, not GL1. The linker automatically 
adds the lib portion. See man ld.
> Secondly, that may be *happening* (I thought) because there is no
> file name following those switches on the linker command line... but
> apparently the linker *would* tolerate that (and incidentally, "is
> generating a misleading error") since all he did was install the
> missing ncurses-devel package (so far as I know), and the problem
> went away.
>
> Cheers,
> -- jra

Attachment: pgp00044.pgp
Description: signature


[Index of Archives]     [X Forum]     [Xorg]     [XFree86 Newbie]     [IETF Announce]     [Security]     [Font Config]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux Kernel]

  Powered by Linux