現象如下:(下面是網上抄的,我本人是英文的,不方便看,就當下面是翻譯的吧!),大致信息如下
scripts/basic/fixdep.c:300: 警告: 未使用的變量 ‘s’
scripts/basic/fixdep.c: 在函數 ‘print_deps’ 中:
scripts/basic/fixdep.c:337: 錯誤: ‘st’ 的存儲大小未知
scripts/basic/fixdep.c:341: 錯誤: ‘O_RDONLY’ 未聲明 (在此函數內第一次使用)
scripts/basic/fixdep.c:343: 警告: 隱式聲明與內建函數 ‘fprintf’ 不兼容
scripts/basic/fixdep.c:343: 錯誤: ‘stderr’ 未聲明 (在此函數內第一次使用)
scripts/basic/fixdep.c:345: 警告: 隱式聲明與內建函數 ‘exit’ 不兼容
scripts/basic/fixdep.c:349: 警告: 隱式聲明與內建函數 ‘fprintf’ 不兼容
scripts/basic/fixdep.c:353: 錯誤: ‘PROT_READ’ 未聲明 (在此函數內第一次使用)
scripts/basic/fixdep.c:353: 錯誤: ‘MAP_PRIVATE’ 未聲明 (在此函數內第一次使用)
scripts/basic/fixdep.c:353: 警告: 賦值時將整數賦給指針,未作類型轉換
scripts/basic/fixdep.c:337: 警告: 未使用的變量 ‘st’
scripts/basic/fixdep.c: 在函數 ‘traps’ 中:
scripts/basic/fixdep.c:372: 警告: 隱式聲明與內建函數 ‘fprintf’ 不兼容
scripts/basic/fixdep.c:372: 錯誤: ‘stderr’ 未聲明 (在此函數內第一次使用)
scripts/basic/fixdep.c:374: 警告: 隱式聲明與內建函數 ‘exit’ 不兼容
make[2]: *** [scripts/basic/fixdep] 錯誤 1
make[1]: *** [scripts_basic] 錯誤 2
解決辦法步驟:
<1> : 網上貼了萬年貼:
將會安裝下列額外的軟件包:
g++ g++-4.0 libc6-dev libstdc++6-4.0-dev linux-kernel-headers
建議安裝的軟件包:
gcc-4.0-doc lib64stdc++6 glibc-doc manpages-dev libstdc++6-4.0-doc stl-manual
下列【新】軟件包將被安裝:
build-essential g++ g++-4.0 libc6-dev libstdc++6-4.0-dev linux-kernel-headers
以上個別軟件包可能裝不上,在我的系統g++-4.0無法安裝,其他的均可以的,但是在后面沒有影響.
<2> :
a>.下載內核代碼,比如是linux-2.6.23.1內核版本,ubuntu系統下的解壓放入/usr/src/linuxs目錄下,命令如下:
tar jfx linux-2.6.34.tar.bz2 -C /usr/src/linuxs
b>.接着要到/usr/include/目錄下進行操作,建立三個鏈接,鏈接到要編譯的內核的源文件中,具體操作是這樣的
#cd /usr/include
#rm -Rf asm linux scsi //刪除原有的鏈接
#ln -s /usr/src/linuxs/linux-2.6.23.1/include/asm-i386 asm
#ln -s /usr/src/linuxs/linux-2.6.23.1/include/linux linux
#ln -s /usr/src/linuxs/linux-2.6.23.1/include/scsi scsi //這個三個鏈接是放在/usr/include
文件夾里面,鏈接到你要編譯的內核源代碼中的include文件夾里
c>.接着就可以編譯了,編譯前要打到源代碼文件夾下
#cd /usr/src/linuxs/linux-2.6.23.1/
然后執行
#make menuconfig
這樣就可以開始編譯了
d>.root權限下操作.
貼上兩張圖片:
make xconfig
make menuconfig