I'm clueless

Kevin Brown kevin_brown@uswest.net
Tue, 11 Apr 2000 16:34:11 -0700


Alright, the problem is just what I kinda thought.  It isn't corrupt, it was
compiled for the x86 instruction set and I'm trying to get it to run on a DEC
Alpha processor.  Oh, well, time to find the source (if it exists) and go from
there.  Thanks Kevin and Rusty, I just learned a little more.

> > Ok, with some help (thanks Patrick) I was able to get past a few
> > problems in trying to get a program to compile.  I was able to
> > connect to the CVS server for this packet sniffing program.  For the
> > past two days I've tried to figure this out to no avail.  I tried
> > searching Altavista and Google for similar errors to see what fixes
> > were tried.  No go, so ...
> >
> > libEQ.a: could not read symbols: File format not recognized
> > collect2: ld returned 1 exit status
> > make[2]: *** [showeq] Error 1
> > make[2]: Leaving directory `/tmp/showeq-2.1.2/src'
> > make[1]: *** [all-recursive] Error 1
> > make[1]: Leaving directory `/tmp/showeq-2.1.2'
> > make: *** [all-recursive-am] Error 2
> >
> > I tried redownloading both the tar.gz file (since one of the
> > developers noticed a problem if Winzip was used) and the cvs version
> > (to different directories) and both end with this error.  The file
> > is present, it is not in source format, just the archive format (I
> > think that is what .a files are).  So..., Any clue.
> 
> Here are my guesses:
> 
>   1) libEQ.a is an archive library for a different architecture than
>      what you are building on.
> 
>   2) libEQ.a is corrupt.
> 
> You might try listing the archive library with the ar program to see
> what's in it.  That'll give you some indication if it's corrupt or not.
> Use the following command:
> 
>     ar t libEQ.a
> 
> If the above command produces a list of .o files, then try the following:
> 
>     ar x libEQ.a foo.o
> 
> where foo.o is one of the object files from the above list.
> 
> Now run ``file'' on the extracted file:
> 
>     file foo.o
> 
> It should produce output something like this...
> 
>     foo.o: ELF 32-bit LSB relocatable, Intel 80386, version 1, not stripped
> 
> If it says it's stripped, that's no good since you need symbols to do the
> linking.
> 
> If the architecture doesn't match the one you're building on, that won't
> work either since you need to link object files together which've been
> compiled for the same architecture.

-- 
"Intel giveth and Microsoft Taketh Away" - Gordon Moore