buildroot安裝問題
在vmware中centos-6.0中安裝buildroot環境。
一.空間準備
為buildroot準備了40g的空間,最後剩下6g,核心編譯出來後剩下6g,準備的還是偏少一點。
在vmware中掛載新的分割槽,配置如下:
fdisk -l
mkfs -t ext4 /dev/sdb1 //格式化成ext4檔案
mount /dev/sdb1 /buildroot //掛載
二.編譯器準備
mkdir software
cd software
wget gcc-8.3.0/gcc-8.3.0.tar.gz
tar zxvf gcc-8.3.0.tar.gz
cd gcc-8.3.0
./contrib/download_prerequisites
2.3 編譯 //注意在build下編譯
mkdir build
cd build
../configure --prefix=/usr/local/gcc-8.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install
configure各項引數詳解:
--prefix=/usr/local/gcc-8.3.0/
:把所有資源檔案都放在該路徑下。
--enable-checking=release
:生成的編譯器在編譯過程中不做額外檢查。
--enable-languages=c,c++
:讓gcc支援c,c++。
--disable-multilib
:不生成編譯為其他平台可執行**的交叉編譯器。
三.碰到的問題
3.1 問題1
your perl installation is not complete enough
解決:yum install -y perl-extutils-makemaker
3.2 問題2
you should not run configure as root (set force_unsafe_configure=1 in environment to bypass this check)
解決:export force_unsafe_configure=1
網上反饋這樣無法解決問題,但是我編過去了
3.3 問題3
在編譯該包host-fakeroot-1.20.2有編譯錯誤
解決:at_empty_path編譯檔案libfakeroot.c, at_empty_path沒有定義,去除
3.4 問題4
c compiler cannot create executables
解決:libexec --------gcc編譯目錄後有個libexec,將它複製到/usr/local/libexec目錄下,即可,原來沒有複製
或者export libs=
export dyld_library_path=
export ld_library_path=
3.5 問題5
sanitizing rpath in target tree
per_package_dir=/buildroot/buildroot-2020.08/output/per-package /buildroot/buildroot-2020.08/support/scripts/fix-rpath target
error: can't execute patchelf utility '/buildroot/buildroot-2020.08/output/host/bin/patchelf'
解決:這個是在程式編譯完後,打包過程**現的錯誤,經分析,指令碼中呼叫了程式patchelf, 將該程式在命令列下執行,有如下的錯誤,更新libstdc++.so.6的庫
./patchelf: /usr/lib/libstdc++.so.6: version `glibcxx_3.4.20' not found (required by ./patchelf)
./patchelf: /usr/lib/libstdc++.so.6: version `glibcxx_3.4.21' not found (required by ./patchelf)
四.總結
總體來說,整個編譯過程還是很順利的,碰到的問題都解決掉了。
buildroot使用詳解
0 為什麼要使用buildroot?讓我們的工作效率成百倍的提公升。1 獲取buildroot 2 配置buildroot 將原始碼包複製到 目錄下,並解壓tar xvf buildroot 2015.02.tar.gz 進入目錄,執行配置命令 cd buildroot 2015.02 執行 mak...
buildroot 製作交叉工具鏈指定安裝位置
使用buildroot製作交叉工具鏈時,預設在當前目錄生成output目錄,之後全部安裝到此目錄下。由於編譯交叉工具鏈時會引用此路徑。為了便於使用所以指定安裝路徑就顯點很有必要了。另外buildroot 本身就支援指定安裝位置,所以何樂不為呢。指定安裝位置非常簡單。只需在編譯的時候通過base di...
更新 buildroot 中的 package
buildroot 發布的時候,其中帶的 package 不一定是最新版本,我們可以自己更新一下 下面以 buildroot 2012.02 中的 sqlite 和 live555 為例,介紹如何使用最新的 package 1,檢視 buildroot 2012.01 package sqlite ...