2013-01-09 69 views
1

我想建立的binutils 2.19.1使用下面的命令的MinGW/MSYS:無法建立的binutils我的交叉編譯

export PREFIX=/usr/local/cross 
export TARGET=i586-elf 
cd /usr/src 
mkdir build-binutils 
cd /usr/src/build-binutils 
../binutils-x.xx/configure --target=$TARGET --prefix=$PREFIX --disable-nls 
make all 
make install 

,並即時得到以下錯誤:

/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../binuti 
ls-2.19.1/bfd -I. -D__USE_MINGW_FSEEK -I. -I../../binutils-2.19.1/bfd -I../.. 
/binutils-2.19.1/bfd/../include  -W -Wall -Wstrict-prototypes -Wmissing-proto 
types -Wno-format -Werror -g -O2 -D__USE_MINGW_ACCESS -c -o archive.lo ../../bin 
utils-2.19.1/bfd/archive.c 
./libtool: line 2258: cygpath: command not found 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19.1/bfd -I. -D__U 
SE_MINGW_FSEEK -I. -I../../binutils-2.19.1/bfd -I../../binutils-2.19.1/bfd/../in 
clude -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-format -Werror -g - 
O2 -D__USE_MINGW_ACCESS -c "" -o archive.o 
gcc.exe: error: : No such file or directory 
gcc.exe: fatal error: no input files 
compilation terminated. 
make[3]: *** [archive.lo] Error 1 
make[3]: Leaving directory `/usr/src/build-binutils/bfd' 
make[2]: *** [install-recursive] Error 1 
make[2]: Leaving directory `/usr/src/build-binutils/bfd' 
make[1]: *** [install-bfd] Error 2 
make[1]: Leaving directory `/usr/src/build-binutils' 
make: *** [install] Error 2 
/x.sh: line 8: ../gcc-4.5.0/configure: No such file or directory 
make: *** No rule to make target `all-gcc'. Stop. 
make: *** No rule to make target `install-gcc'. Stop. 

我是得到同樣的錯誤,即使是DIFF binutils的版本,我已經嘗試過的binutils-2.19.1,2.22.0,2.23.1 所以什麼都可以的問題? 也是我的MinGW的gcc編譯器版本是4.6.2

我也一直在嘗試,命令

make CFLAGS="-Os -w" 

BT還是一樣的問題仍然存在

+0

有這個答案,但它更多的建議,所以回答刪除。似乎gcc正在尋找封裝在cwd下的兩個目錄。例如-I ../../ binutils-2.19.1/bfd在行中: gcc -DHAVE_CONFIG_H -I。 -I ../../的binutils-2.19.1/BFD 也許你已經設置環境變量錯了嗎? LFS建議從另一個目錄運行./configure http://lfs.loc/chapter05/binutils-pass1.html –

回答

0

我得到一個類似的錯誤(「cygpath:命令未找到「),但使用更新的版本。 FWICT存在的binutils內的行假定Cygwin的存在,雖然我沒有看到在構建指令說Cygwin的被要求(我可能會錯過它,雖然)任何註釋。

我想正確的辦法是安裝Cygwin,但我不知道是否會使用MinGW以其他方式干擾。它看起來像binutils的只是試圖用cygpath到O/S路徑之間轉換的命名慣例,所以我解決此問題得到了通過創建一個小的虛擬cygpath shell腳本:

#options described at http://cygwin-lite.sourceforge.net/html/cygpath.html 
#echo "MISSING CYGPATH" 
if [ "x$1" == "x-w" ] 
then 
    echo $2 #just echo path name back as-is 
else 
    read -p "MISSING CYGPATH. PARAMS WERE: 1=$1 2=$2 3=$3 4=$4 5=$5" 
fi 

我把這個在PATH這樣的binutils可以找到它,而不是在構建過程中發生錯誤。這個腳本只是呼應了路徑名背照原樣(爲路徑重命名方案),自Windows似乎是能夠理解的Unix風格的路徑反正這幾天(和我是在Windows上運行)。爲別的,這個腳本將暫停,並顯示前幾個命令行參數,提供一些線索,以什麼需要進一步的功能。

HTH有人得到更遠一點