我无法通过在 i386 机器上先前构建的树中运行 make 命令来创建可运行的可执行文件。我收到以下形式的错误消息:
me@me-desktop:~$ make
/usr/bin/ld: i386 architecture of input file `../.. /Lib/libProgram.a(something.o)' is incompatible with i386:x86-64 output
我已被告知并确信该程序已在 64 位 Fedora 上测试并成功编译。
我正在运行一台 64 位机器
me@me-desktop:~$ uname -m
x86_64
我正在运行 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
我正在使用 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.
我也在使用 libtool
# me@me-desktop:~$ libtool --version
ltmain.sh (GNU libtool) 2.2.6b
Written by Gordon Matzigkeit <[email protected]>, 1996
有任何线索表明发生了什么问题吗?
答案1
有以下几种可能性:
- 需要在 make 之前运行 ./configure(如果从 386 机器复制过来)
- 需要运行 ./autogen.sh(如果从版本控制中检出时没有给出配置脚本)