zxcv
zxcv

Reputation: 7631

gcc error: wrong ELF class: ELFCLASS64

I was trying to compile a program using an external compiled object coreset.o. I wrote the public01.c test file and my functions are in computation.c, both of which compiles. However its failing on linking it together. What might be the problem?

gcc -o public01.x public01.o computation.o coreset.o
ld: fatal: file coreset.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to public01.x
collect2: ld returned 1 exit status

Upvotes: 33

Views: 138908

Answers (6)

msb
msb

Reputation: 4428

I got this error when trying to run an existing binary in Ubuntu. I fixed with:

apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

I'm not sure which of the 3 libs did it, but I believe it was the 3rd one.

Upvotes: 0

user330606
user330606

Reputation:

sudo apt-get install ia32-libs 

Upvotes: 4

Jonathan Leffler
Jonathan Leffler

Reputation: 753695

You can specify '-m32' or '-m64' to select the compilation mode.

When dealing with autoconf (configure) scripts, I usually set CC="gcc -m64" (or CC="gcc -m32") in the environment so that everything is compiled with the correct bittiness. At least, usually...people find endless ways to make that not quite work, but my batting average is very high (way over 95%) with it.

Upvotes: 8

John Millikin
John Millikin

Reputation: 200796

It looks like the object file was compiled on a 64-bit toolchain, and you're using a 32-bit toolchain. Have you tried recompiling the object file in 32-bit mode?

Upvotes: 4

Christian C. Salvadó
Christian C. Salvadó

Reputation: 827366

I think that coreset.o was compiled for 64-bit, and you are linking it with a 32-bit computation.o.

You can try to recompile computation.c with the '-m64' flag of gcc(1)

Upvotes: 36

zxcv
zxcv

Reputation: 7631

It turns out the compiler version I was using did not match the compiled version done with the coreset.o.

One was 32bit the other was 64bit. I'll leave this up in case anyone else runs into a similar problem.

Upvotes: 5

Related Questions