Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

error while linking

Prashanthns
Beginner
561 Views
Hi All,

I am having some problem while linking . Its working properly when i configure it for x86 but its having problem when i configure for x86-64. I am getting following error.

ld: i386:x86-64 architecture of input file `./libvpx.a(emms.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(idctllm_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(iwalsh_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(recon_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(subpixel_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(loopfilter_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(quant_common_mmx.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(recon_sse2.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(subpixel_sse2.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(loopfilter_sse2.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(iwalsh_sse2.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(postproc_sse2.asm.o)' is incompatible with i386 output
ld: i386:x86-64 architecture of input file `./libvpx.a(dequantize_mmx.asm.o)' is incompatible with i386 output
make[1]: *** [ivfdec] Error 1
make: *** [.DEFAULT] Error 2

Is it the problem with make tool or I am missing some libraries??

Regards,
Prashanth NS
0 Kudos
2 Replies
Milind_Kulkarni__Int
New Contributor II
561 Views

If simple "Hello" program works clean, then from error, it seems that the x64-compilation is being followed by 32-bit linking.. Check to see in configure you do not have LDFLAGS set as -m32 anywhere, or explicitly set it as -m64before ./configure ..

0 Kudos
TimP
Honored Contributor III
561 Views
You are still using the 32-bit mode linker, presumably set by a tool or .o file earlier in your sequence (if you didn't invoke it specifically). You won't be able to link your new 64-bit library until you get everything into 64-bit mode and use the 64-bit ld.
0 Kudos
Reply