0

I am unable to create a working executable file by running the make command in a tree previously built on an i386 machine. I'm getting an error message in the form of

me@me-desktop:~$  make
/usr/bin/ld: i386 architecture of input file `../.. /Lib/libProgram.a(something.o)' is incompatible with i386:x86-64 output

I've been told and reassured that this program has been tested and successfully compiled on 64-bit Fedora.

I'm running a 64-bit machine

me@me-desktop:~$  uname -m
x86_64

I'm running Ubuntu 10.04

me@me-desktop:~$  lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:    10.04
Codename:    lucid

I'm using g++

# me@me-desktop:~$ g++ --version
g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I'm also using libtool

# me@me-desktop:~$ libtool --version
ltmain.sh (GNU libtool) 2.2.6b
Written by Gordon Matzigkeit <[email protected]>, 1996

Any clues as to what is going wrong?

2
  • 1
    are you building from source - or are you linking against prebuilt object/library files? If the latter - are you sure these libraries/objects are actually 64bit?
    – fossfreedom
    Sep 7, 2011 at 21:32
  • Hi fossfreedom, sorry for the newb factor... I have no idea if these are linking against "prebuilt object/library files". There are no executable files that came with it. How do I determine if there are "prebuilt object/library files"?
    – user784637
    Sep 7, 2011 at 22:17

1 Answer 1

3

There are a some possibilities:

  • need to run ./configure before make (if copied over from 386-machine)
  • need to run ./autogen.sh (if checked out from version control with no configure script given)
2
  • Thanks aquaherd, I can confirm this was copied from a 386-machine. I will try this out once I get access to my 64-bit ubuntu at home in like 4 hours.
    – user784637
    Sep 7, 2011 at 22:15
  • 1
    In this case, doing a make clean before ./configure would help. Also, if an autogen.sh is present, issuing make distclean may force the regeneration of the configure script for x86_64.
    – aquaherd
    Sep 7, 2011 at 22:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .