Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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 <gord@gnu.ai.mit.edu>, 1996

Any clues as to what is going wrong?

share|improve this question
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 '11 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 '11 at 22:17

1 Answer 1

up vote 3 down vote accepted

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)
share|improve this answer
    
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 '11 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 '11 at 22:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.