2021-05-12 14:32:11
Ubuntu 使用Openwrt SDK交叉編譯ipk包過程圖文全紀錄
剛剛買了一個網件wndr4300路由器,快遞還沒送來就已經開始琢磨刷機的事了。賣家提供了一個明月的op韌體,裡面功能超級多但是非常臃腫,我在hg255d上的使用經驗告訴我這樣臃腫的包非常耗費CPU資源,而且會導致網速變慢和無故重新啟動。恩山上大神編譯的幾乎都是新增了很多應用的韌體。而我只需要一個ss功能就夠了,最好有luci介面,所以決定自己編譯出ipk包放到路由器上使用opkg安裝。
首先去openwrt ss的github官網,https://github.com/shadowsocks/openwrt-shadowsocks 這上面只給了makefile檔案,沒有c原始碼,因為c原始碼都在Shadowsocks-libev專案上,在makefile時會自動的去github上下載一個tar包,然後編譯那裡面的檔案,如https://github.com/shadowsocks/openwrt-shadowsocks/releases/download/v2.5.5/shadowsocks-libev-2.5.5.tar.gz,如果你網速很慢可以把makefile中相關的url改掉換成本地下載好的tar包。正常情況下我們不需要修改makefile就能正常編譯。
注意:在編譯過程中會聯網下載大量的依賴庫,所以一定要保證網路暢通穩定,否則會頻繁失敗,我在下載依賴庫的時候都不到2KB/s。
網上很多編譯ss的教學都是2014年的,它們都是直接clone openwrt的原始碼,然後用openwrt的原始碼編譯出很多編譯工具再編譯apk,這樣做非常的耗時,我親自試過大概花了3個多小時也沒成功,自從有了SDK之後就不用這麼麻煩了,編譯過程10幾分鐘就可以搞定。同樣github上也推薦我們使用SDK進行編譯。
注意:SDK版本要選擇適合你路由器及路由器上系統的,比如CC15.05 SDK編譯出來的ipk不能裝載trunc版上,反之亦然,所以我們要選擇適合路由器上openwrt系統的SDK,下文以wndr4300 CC 15.05 版openwrt為例。
首先去openwrt的官網下載相關SDK,http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/nand/ 如果你要編譯的不是wndr4300,可以去根目錄自己通過CPU,記憶體型別選擇相應的SDK進行下載,這裡就不廢話了。
如上圖,第一個黃線是編譯韌體要用的ImageBuilder,是編譯完整韌體用的,我們只編譯ipk軟體包所以用不到,第二個黃線就是我們要用的SDK檔案了
第三個和第四個都是純淨版的OP系統,可以下載然後刷到wndr4300路由器裡面,一個是原有OP網頁刷,一個是原版或者tftp刷的韌體。刷入這個韌體然後再opkg安裝我們編譯出的ipk包就具備相關功能了。所以此時我們首先下載SDK。
下載完成之後放到一個好記而且沒有許可權限制的目錄中,比如我在我的使用者目錄下建立一個叫OP_SDK的資料夾,然後把這個tar包放進去
註:我是用的winscp放進去的,在linux下可以直接使用wget http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/nand/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2 來下載這個tar包
放上去之後我們解壓這個tar包
tar xjf OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
解壓完之後 OP_SDK目錄下就會出現一個和tar包同名的資料夾,這裡面就是我們要用到交叉編譯的SDK了
然後做非常重要的一步,安裝編譯相關的依賴庫檔案,否則進不去make menuconfig
sudo apt-get update sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk
sudo apt-get install subversion mercurial
而且還有非常重要的一步,是安裝c編譯環境,當初我就因為ccache沒有安裝導致一晚上都白忙活
sudo apt-get install ccache |
因為ccache Ubuntu 16.04沒有預設安裝,導致編譯的時候一直報 C compiler cannot create executables錯誤,浪費了很多時間
基本的環境安裝完成之後,我們就可以開始編譯工作了,注意保持網路暢通
根據github上的README即可
cd ./OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/ # 安裝 feeds ./scripts/feeds update packages ./scripts/feeds install libpcre
=============先到這裡暫停=============
# 獲取 Makefile git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev # 選擇要編譯的包 Network -> shadowsocks-libev make menuconfig # 開始編譯 make package/shadowsocks-libev/compile V=99
現在我們先開始安裝feeds,就是用來選擇編譯什麼外掛用的列表
安裝feeds的第一行命令會聯網下載feeds列表,比較費時,第二行會報miss index的warning,不用管。
然後克隆git上的makefile檔案下來,如果你網速慢也可以自己下載然後放到./package/shadowsocks-libev下面去,注意這裡不要改資料夾的名字,因為寫死在makefile裡面了
但是這裡我們暫停一下,因為編譯ss是一個完整的解決依賴-編譯-連線的過程,很容易出錯,而編譯luci UI介面只需要簡單的打包一下即可,所以不妨先編譯一下luci體會一下。
git clone https://github.com/shadowsocks/luci-app-shadowsocks.git package/luci-app-shadowsocks # 編譯 po2lmo (如果有po2lmo可跳過) pushd package/luci-app-shadowsocks/tools/po2lmo make && sudo make install popd # 選擇要編譯的包 LuCI -> 3. Applications make menuconfig # 開始編譯 make package/luci-app-shadowsocks/compile V=99
首先git克隆,此時在package目錄下會出現一個luci的目錄
然後繼續執行,並不容易出錯
然後選擇編譯luci的ipk通過make menuconfig
選擇LuCI,確認時<M>選中,代表編譯出ipk包
然後選擇<Save>回車,儲存後,連續選擇<Exit>退出
上圖直接選擇<Ok>即可
然後我們就可以開始編譯luci了
make package/luci-app-shadowsocks/compile V=99
因為不依賴c編譯環境,所以不容易出錯
然後去/bin/ar71xx/packages/base???錄下就可以看到我們編譯好的ipk了,把它取出來放到別的位置上然後刪掉,我們準備開始編譯ss
現在開始克隆ss的openwrt版並把剛才克隆的./package/luci-app-shadowsocks給刪掉
git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev
然後像剛才選擇luci一樣在make menuconfig中選擇ss
OpenSSL版支援的加密方法多,PolarSSL支援的加密方法少,看你的需求而定
注意:只編譯上面選擇的兩個或者一個就好,不要選擇第mbedTLS版,因為mbedtls需要第三方依賴庫,而ubuntu是不給你自動安裝的,會因為缺少依賴而編譯失敗
然後跟luci一樣<Save>然後連續<Exit>
下面就是最激動人心的一步了,開始我們的c編譯,連線過程
make package/shadowsocks-libev/compile V=99
在這個過程中會聯網下載很多個依賴,要保證網路暢通然後靜等,注意*不要*使用sudo許可權!整個編譯耗時大約2分鐘左右,視網路狀況而定
下圖是下載某個依賴庫
下圖是下載Shadowsocks-libev的原始碼
如果沒有報錯就說明編譯完成了
在這個編譯過程中遇到問題退出是很正常的,完全不需要大驚小怪,而且隨著版本的更新會不斷的出現新的編譯問題,就需要我們自己去解決。
多數的編譯問題都是缺少依賴庫或者網路不暢,需要我們仔細的檢視config.log檔案
查詢這個檔案的方法是執行
locate config.log
一般編譯到哪一步失敗就去看哪一步的config.log,我之前碰到的一個編譯失敗是因為沒安裝ccache,在上圖黃線的config.log在文章最後貼出來
如果編譯成功,我們可以在/bin/ar71xx/packages/base目錄下看到編譯好的ipk了,這兩個ipk到時候只安裝一個就好,不要都安裝
現在挑一個你需要的ipk出來放到openwrt系統下使用opkg安裝即可,還可以配合之前做好的luci UI介面ipk包
==============我是分隔線==============
經過漫長的等待,終於從快遞手中收到路由器了,之前編譯好的三個ipk包感覺已經躺了大半年了。現在終於可以刷進去了。怎麼從wndr4300原版刷成op的純淨系統我就不說了,而且我已經讓賣家賣給我之前就刷好一個CC版15.05.1的純淨系統,這個系統是我在恩山上找的,這裡感謝一下作者xmit0806,該韌體的貼文地址:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=186099
這個韌體作者說支援了128M快閃記憶體,用dnsmasq-full替換了dnsmasq,新增了opkg軟體源等,都是非常實用的。
可是我在用的時候發現如果斷電重新啟動,那麼所有做過的操作都會清零,就跟恢復出廠設定了一樣,挺鬱悶,如果有人看見更好地純淨版系統麻煩通知我。
好了言歸正傳,現在開始安裝之前編譯好的ipk包了。
首先看一下沒安裝之前的狀態
看起來的確是很純淨,一個“服務”都沒裝,而且記憶體的空餘很大,從上圖可以看出,該機器之前沒有安裝ss-local服務
然後我通過winscp把編譯好的ipk包上傳到使用者目錄/root上去
這裡winscp還有一些小坑,首先你的路由器必須設定了登陸密碼才能用SSH登陸,SSH的使用者名稱和密碼就是路由器的登入名和登陸密碼,這個在一進路由器後台就會用黃色的框提示你,直接修改就好,我選的登入名為root,密碼為root,所以使用者目錄就變成了/root
還有winscp必須設定成scp協定,使用Ubuntu支援的sftp協定是登陸不進去的
然後我抱著必錯的信念開始用opkg安裝
果然不出我所料報錯了,不過並不是什麼大的問題,缺少兩個依賴庫,libpcre和libpthread
那怎麼裝這兩個依賴包呢,手頭有沒有他們的ipk包。但是隱隱記得這個韌體的作者新增了軟體源,於是我打算拼死一搏
一搏有效,通過更新軟體源的命令已經成功更新了base包和luci包,packages包更新太慢停掉就行,重要的是base
於是我根據上面的提示主動去openwrt的官網上去找packages包,找到了libpcre的依賴
還真讓我找到了,趕緊下載下來放到路由器上(中間那個libpcre_8.38-1_ar71xx.ipk就是我們要用的)
註:packages包裡要用的就它一個了,剩下的都在base包裡
好了,解決了一個依賴,讓我們先安裝這個依賴再繼續安裝ss吧
哎呦,忘了還有一個依賴,opkg雖然下載的很慢,但是貼心的把這個依賴包的下載地址給列印出來了,那我就直接用迅雷下好放進去得了
放好了,我們開始安裝吧
上圖顯示Openwrt已經成功安裝了剩下的一個依賴和ss,看來我們SDK編譯還是很成功的
現在讓我們執行一下ss-local檢驗一下是否安裝成功
ss-local有反應了,看來安裝已經徹底成功了。
下面我們檢查一下ss-redir的透明代理功能是不是好用,首先我們編寫一個ss伺服器的組態檔,監聽0.0.0.0:1080(注意不能是127.0.0.1或內網地址,否則iptables無法轉發)
然後呼叫ss-redir去執行該組態檔
看樣子是啟動成功了,而且最新版的Shadowsocks-libev可以使用-u引數支援udp轉發,讓我們再用netstat看看1080埠的情況
可以看出來,udp和tcp的1080埠均被ss-redir占用,說明啟動成功了,下面只要配合iptables的轉發就實現了透明代理了
上面只是一個簡略版,完整的應該如下
iptables -t nat -A PREROUTING -d 127.0.0.0/24 -j RETURN iptables -t nat -A PREROUTING -d 192.168.0.0/16 -j RETURN iptables -t nat -A PREROUTING -d 10.42.0.0/16 -j RETURN iptables -t nat -A PREROUTING -d 0.0.0.0/8 -j RETURN iptables -t nat -A PREROUTING -d 10.0.0.0/8 -j RETURN iptables -t nat -A PREROUTING -d 172.16.0.0/12 -j RETURN iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j RETURN iptables -t nat -A PREROUTING -d 240.0.0.0/4 -j RETURN iptables -t nat -A PREROUTING -d 169.254.0.0/16 -j RETURN iptables -t nat -A PREROUTING -p tcp -s 192.168.1.1/16 -j REDIRECT --to-ports 1080
然後用手機百度搜尋ip,已經換成代理的ip啦。
更寶貴的是ss-redir自帶DNS防汙染功能,存取谷歌,facebook神馬的都暢通無阻啦,然後我們再測個速研究一下路由器的負載能力(我是20M光纖)
看起來是非常不錯的,幾乎可以把頻寬跑滿
下面我們再去路由器後台看看進程
我們剛才執行的指令ss-redir已經顯示在UI介面上了
到這ss的透明代理已經全部搞定了,但是有些人不喜歡用命令列去設定,而喜歡在路由器後台使用luci介面,於是我們把之前編譯好的luci介面也裝上吧
於是把luci的ipk傳到路由器上去準備安裝
沒想到luci介面也需要依賴庫,一看是ipset,是非常有用的東西,通過ipset可以設定dnsmasq-full通過域名進行代理規則的書寫,可以克服iptables只能識別ip的短板
既然上面已經給出了ipk的下載地址,opkg下載的還這麼慢,那我乾脆繼續用迅雷上吧,裝上ipset以後我們繼續
安裝ipset居然也需要依賴包,是libmnl,同樣辦法先把這個裝了再裝ipset吧,沒出現迴圈依賴就不錯啦
果然解決了這兩個依賴以後luci介面就裝好了,讓我們進路由器後台瞅瞅
呈貢啦,選單多了一項“服務”,“影梭”就在裡面,讓我們點進去看看
果然是最新的luci和最新的ss,支援udp轉發啦,可惜上面顯示udp轉發不可用,缺少依賴,這多虧了有luci,不然我還不知道我這udp轉發沒法用。
據我判斷缺少的肯定是iptables-mod-tproxy,因為ip預設已經裝載Openwrt裡了,於是老辦法,去Openwrt的官網找找去
果然配好軟體源的opkg又幫我們自動定位到了下載地址,老辦法迅雷上
好啦,這個udp轉發的依賴已經順利安裝完畢了,我們重新整理路由器後台看看
好啦,現在luci介面已經完美支援udp轉發啦!整個教學到此結束,我把這次安裝所用到的所有ipk包放在下面供大家免費下載,理論上說CC版15.05 wndr4300裝置都可以通用的。
下圖是我用到所有的ipk包
這裡面的ip和shadowsocks-libev-polarssl應該不裝,polarss支援的加密方式少,比如沒有rc4-md5這種加密方式,推薦使用openssl版本也就是我上面說的版本,ip包Openwrt應該預設自帶,如果沒有的話可以安裝,因為我沒裝過這個ip包不知道好不好用,其他的包按照依賴關係一個一個裝上即可,推薦在CC 15.05.1的wndr4300純淨系統上安裝,純淨系統可以用上面恩山大神的那個
下載地址:
Openwrt_wndr4300_CC_15.05用到的ipk包
下面再秀一下剛買的wndr4300
附:因為沒安裝ccache導致的無法編譯的config.log
This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by PCRE configure 8.39, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --target=mips-openwrt-linux --host=mips-openwrt-linux --build=x86_64-linux-gnu --program-prefix= --program-suffix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls --enable-utf8 --enable-unicode-properties --enable-pcre16 --enable-cpp ## --------- ## ## Platform. ## ## --------- ## hostname = alex-ThinkPad-T430 uname -m = x86_64 uname -r = 4.4.0-36-generic uname -s = Linux uname -v = #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/host/bin PATH: /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin PATH: /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin PATH: /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin PATH: /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin PATH: /usr/local/Java/jdk1.8.0_91/bin PATH: /opt/Android-studio/gradle/gradle-2.14.1/bin PATH: /usr/local/sbin PATH: /usr/local/bin PATH: /usr/sbin PATH: /usr/bin PATH: /sbin PATH: /bin PATH: /usr/games PATH: /usr/local/games PATH: /snap/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:2666: loading site script /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/include/site/mips | #!/bin/sh | . $TOPDIR/include/site/linux | ac_cv_c_littleendian=${ac_cv_c_littleendian=no} | ac_cv_c_bigendian=${ac_cv_c_bigendian=yes} | | ac_cv_sizeof___int64=0 | ac_cv_sizeof_char=1 | ac_cv_sizeof_int=4 | ac_cv_sizeof_int16_t=2 | ac_cv_sizeof_int32_t=4 | ac_cv_sizeof_int64_t=8 | ac_cv_sizeof_long_int=4 | ac_cv_sizeof_long_long=8 | ac_cv_sizeof_long=4 | ac_cv_sizeof_off_t=8 | ac_cv_sizeof_short_int=2 | ac_cv_sizeof_short=2 | ac_cv_sizeof_size_t=4 | ac_cv_sizeof_ssize_t=4 | ac_cv_sizeof_u_int16_t=2 | ac_cv_sizeof_u_int32_t=4 | ac_cv_sizeof_u_int64_t=8 | ac_cv_sizeof_uint16_t=2 | ac_cv_sizeof_uint32_t=4 | ac_cv_sizeof_uint64_t=8 | ac_cv_sizeof_unsigned_int=4 | ac_cv_sizeof_unsigned_long=4 | ac_cv_sizeof_unsigned_long_long=8 | ac_cv_sizeof_unsigned_short=2 | ac_cv_sizeof_void_p=4 configure:2808: checking for a BSD-compatible install configure:2876: result: /usr/bin/install -c configure:2887: checking whether build environment is sane configure:2942: result: yes configure:3001: checking for mips-openwrt-linux-strip configure:3028: result: mips-openwrt-linux-uclibc-strip configure:3093: checking for a thread-safe mkdir -p configure:3132: result: /bin/mkdir -p configure:3139: checking for gawk configure:3155: found /usr/bin/gawk configure:3166: result: gawk configure:3177: checking whether make sets $(MAKE) configure:3199: result: yes configure:3228: checking whether make supports nested variables configure:3245: result: yes configure:3383: checking whether make supports nested variables configure:3400: result: yes configure:3428: checking for style of include used by make configure:3456: result: GNU configure:3487: checking for mips-openwrt-linux-gcc configure:3514: result: ccache_cc configure:3783: checking for C compiler version configure:3792: ccache_cc --version >&5 /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/ccache_cc: 2: exec: ccache: not found configure:3803: $? = 127 configure:3792: ccache_cc -v >&5 /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/ccache_cc: 2: exec: ccache: not found configure:3803: $? = 127 configure:3792: ccache_cc -V >&5 /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/ccache_cc: 2: exec: ccache: not found configure:3803: $? = 127 configure:3792: ccache_cc -qversion >&5 /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/ccache_cc: 2: exec: ccache: not found configure:3803: $? = 127 configure:3823: checking whether the C compiler works configure:3845: ccache_cc -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -fpic -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib conftest.c >&5 /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/ccache_cc: 2: exec: ccache: not found configure:3849: $? = 127 configure:3887: result: no configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "PCRE" | #define PACKAGE_TARNAME "pcre" | #define PACKAGE_VERSION "8.39" | #define PACKAGE_STRING "PCRE 8.39" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "pcre" | #define VERSION "8.39" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3892: error: in `/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39': configure:3894: error: C compiler cannot create executables See `config.log' for more details ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_c_bigendian=yes ac_cv_c_gettext_without_libintl=yes ac_cv_c_littleendian=no ac_cv_c_long_double=no ac_cv_conv_longlong_to_float=yes ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set=set ac_cv_env_CC_value=ccache_cc ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -fpic ' ac_cv_env_CPPFLAGS_set=set ac_cv_env_CPPFLAGS_value='-I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include ' ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -fpic ' ac_cv_env_CXX_set=set ac_cv_env_CXX_value=ccache_cxx ac_cv_env_GENHTML_set= ac_cv_env_GENHTML_value= ac_cv_env_LCOV_set= ac_cv_env_LCOV_value= ac_cv_env_LDFLAGS_set=set ac_cv_env_LDFLAGS_value='-L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib ' ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_PKG_CONFIG_LIBDIR_set=set ac_cv_env_PKG_CONFIG_LIBDIR_value=/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/pkgconfig:/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/share/pkgconfig ac_cv_env_PKG_CONFIG_PATH_set=set ac_cv_env_PKG_CONFIG_PATH_value=/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/pkgconfig:/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/share/pkgconfig ac_cv_env_PKG_CONFIG_set=set ac_cv_env_PKG_CONFIG_value=/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/pkg-config ac_cv_env_VALGRIND_CFLAGS_set= ac_cv_env_VALGRIND_CFLAGS_value= ac_cv_env_VALGRIND_LIBS_set= ac_cv_env_VALGRIND_LIBS_value= ac_cv_env_build_alias_set=set ac_cv_env_build_alias_value=x86_64-linux-gnu ac_cv_env_host_alias_set=set ac_cv_env_host_alias_value=mips-openwrt-linux ac_cv_env_target_alias_set=set ac_cv_env_target_alias_value=mips-openwrt-linux ac_cv_file__dev_zero=yes ac_cv_func___adjtimex=yes ac_cv_func___va_copy=no ac_cv_func__exit=yes ac_cv_func_bcmp=yes ac_cv_func_bcopy=yes ac_cv_func_bzero=yes ac_cv_func_cimag=yes ac_cv_func_creal=yes ac_cv_func_fchmod=yes ac_cv_func_getaddrinfo=yes ac_cv_func_getcwd=yes ac_cv_func_getdomainname=yes ac_cv_func_getpgrp_void=yes ac_cv_func_getpwuid_r=yes ac_cv_func_gettimeofday=yes ac_cv_func_index=yes ac_cv_func_lstat=yes ac_cv_func_lstat_dereferences_slashed_symlink=yes ac_cv_func_lstat_empty_string_bug=no ac_cv_func_malloc_0_nonnull=yes ac_cv_func_malloc_works=yes ac_cv_func_memcmp_clean=yes ac_cv_func_memcmp_working=yes ac_cv_func_posix_getgrgid_r=yes ac_cv_func_posix_getpwuid_r=yes ac_cv_func_psignal=yes ac_cv_func_pthread_key_delete=yes ac_cv_func_realloc_0_nonnull=yes ac_cv_func_realloc_works=yes ac_cv_func_rename=yes ac_cv_func_rindex=yes ac_cv_func_setgrent_void=yes ac_cv_func_setlocale=yes ac_cv_func_setpgrp_void=yes ac_cv_func_setresuid=no ac_cv_func_setvbuf_reversed=no ac_cv_func_stat_empty_string_bug=no ac_cv_func_stat_ignores_trailing_slash=no ac_cv_func_strerror=yes ac_cv_func_strftime=yes ac_cv_func_utimes=yes ac_cv_func_va_copy=no ac_cv_func_vsnprintf=yes ac_cv_have_accrights_in_msghdr=no ac_cv_have_broken_snprintf=no ac_cv_have_control_in_msghdr=yes ac_cv_have_decl_sys_siglist=no ac_cv_have_openpty_ctty_bug=yes ac_cv_have_space_d_name_in_struct_dirent=yes ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sctp_uio_h=no ac_cv_int64_t=yes ac_cv_lbl_unaligned_fail=no ac_cv_linux_kernel_pppoe=yes ac_cv_linux_vers=2 ac_cv_pack_bitfields_reversed=yes ac_cv_path_LDCONFIG= ac_cv_path_install='/usr/bin/install -c' ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_CC=ccache_cc ac_cv_prog_STRIP=mips-openwrt-linux-uclibc-strip ac_cv_prog_make_make_set=yes ac_cv_regexec_segfault_emptystr=no ac_cv_sctp=no ac_cv_sizeof___int64=0 ac_cv_sizeof_char=1 ac_cv_sizeof_int16_t=2 ac_cv_sizeof_int32_t=4 ac_cv_sizeof_int64_t=8 ac_cv_sizeof_int=4 ac_cv_sizeof_long=4 ac_cv_sizeof_long_int=4 ac_cv_sizeof_long_long=8 ac_cv_sizeof_off_t=8 ac_cv_sizeof_short=2 ac_cv_sizeof_short_int=2 ac_cv_sizeof_size_t=4 ac_cv_sizeof_ssize_t=4 ac_cv_sizeof_u_int16_t=2 ac_cv_sizeof_u_int32_t=4 ac_cv_sizeof_u_int64_t=8 ac_cv_sizeof_uint16_t=2 ac_cv_sizeof_uint32_t=4 ac_cv_sizeof_uint64_t=8 ac_cv_sizeof_unsigned_int=4 ac_cv_sizeof_unsigned_long=4 ac_cv_sizeof_unsigned_long_long=8 ac_cv_sizeof_unsigned_short=2 ac_cv_sizeof_void_p=4 ac_cv_sys_restartable_syscalls=yes ac_cv_time_r_type=POSIX ac_cv_type_SUSEconds_t=yes ac_cv_uchar=no ac_cv_uint64_t=yes ac_cv_uint=yes ac_cv_ulong=yes ac_cv_ushort=yes ac_cv_va_copy=C99 ac_cv_va_val_copy=yes am_cv_make_support_nested_variables=yes as_cv_unaligned_access=yes ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/missing aclocal-1.15' AMDEPBACKSLASH='' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' AM_BACKSLASH='' AM_DEFAULT_V='0' AM_DEFAULT_VERBOSITY='0' AM_V='0' AR='mips-openwrt-linux-uclibc-gcc-ar' AS='ccache_cc -c -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -fpic' AUTOCONF='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/missing autoconf' AUTOHEADER='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/missing autoheader' AUTOMAKE='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/missing automake-1.15' AWK='gawk' CC='ccache_cc' CCDEPMODE='' CFLAGS='-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -fpic ' CPP='' CPPFLAGS='-I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include ' CXX='ccache_cxx' CXXCPP='' CXXDEPMODE='' CXXFLAGS='-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -mips16 -minterlink-mips16 -fpic ' CYGPATH_W='echo' DEFS='' DEPDIR='.deps' DISTCHECK_CONFIGURE_FLAGS='' DLLTOOL='' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='' EXEEXT='' EXTRA_LIBPCRE16_LDFLAGS='' EXTRA_LIBPCRE32_LDFLAGS='' EXTRA_LIBPCRECPP_LDFLAGS='' EXTRA_LIBPCREPOSIX_LDFLAGS='' EXTRA_LIBPCRE_LDFLAGS='' FGREP='' GCOV_CFLAGS='' GCOV_CXXFLAGS='' GCOV_LIBS='' GENHTML='' GREP='' HAVE_VISIBILITY='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LCOV='' LD='mips-openwrt-linux-uclibc-ld' LDFLAGS='-L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib ' LIBBZ2='' LIBOBJS='' LIBREADLINE='' LIBS='' LIBTOOL='' LIBZ='' LIPO='' LN_S='' LTLIBOBJS='' MAKEINFO='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/missing makeinfo' MANIFEST_TOOL='' MKDIR_P='/bin/mkdir -p' NM='mips-openwrt-linux-uclibc-gcc-nm' NMEDIT='' OBJDUMP='mips-openwrt-linux-uclibc-objdump' OBJEXT='' OTOOL64='' OTOOL='' PACKAGE='pcre' PACKAGE_BUGREPORT='' PACKAGE_NAME='PCRE' PACKAGE_STRING='PCRE 8.39' PACKAGE_TARNAME='pcre' PACKAGE_URL='' PACKAGE_VERSION='8.39' PATH_SEPARATOR=':' PCRE_DATE='' PCRE_MAJOR='' PCRE_MINOR='' PCRE_PRERELEASE='' PCRE_STATIC_CFLAG='' PKG_CONFIG='/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/host/bin/pkg-config' PKG_CONFIG_LIBDIR='/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/pkgconfig:/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/share/pkgconfig' PKG_CONFIG_PATH='/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/pkgconfig:/home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/share/pkgconfig' PTHREAD_CC='' PTHREAD_CFLAGS='' PTHREAD_LIBS='' RANLIB='mips-openwrt-linux-uclibc-gcc-ranlib' SED='' SET_MAKE='' SHELL='/bin/bash' SHTOOL='' STRIP='mips-openwrt-linux-uclibc-strip' VALGRIND_CFLAGS='' VALGRIND_LIBS='' VERSION='8.39' VISIBILITY_CFLAGS='' VISIBILITY_CXXFLAGS='' WITH_GCOV_FALSE='' WITH_GCOV_TRUE='' WITH_JIT_FALSE='' WITH_JIT_TRUE='' WITH_PCRE16_FALSE='' WITH_PCRE16_TRUE='' WITH_PCRE32_FALSE='' WITH_PCRE32_TRUE='' WITH_PCRE8_FALSE='' WITH_PCRE8_TRUE='' WITH_PCRE_CPP_FALSE='' WITH_PCRE_CPP_TRUE='' WITH_REBUILD_CHARTABLES_FALSE='' WITH_REBUILD_CHARTABLES_TRUE='' WITH_UTF_FALSE='' WITH_UTF_TRUE='' WITH_VALGRIND_FALSE='' WITH_VALGRIND_TRUE='' ac_ct_AR='' ac_ct_CC='' ac_ct_CXX='' ac_ct_DUMPBIN='' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='' am__fastdepCXX_FALSE='' am__fastdepCXX_TRUE='' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='_no' am__quote='' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ax_pthread_config='' bindir='/usr/bin' build='x86_64-linux-gnu' build_alias='x86_64-linux-gnu' build_cpu='' build_os='' build_vendor='' datadir='/usr/share' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' enable_cpp='yes' enable_pcre16='yes' enable_pcre32='' enable_pcre8='' exec_prefix='/usr' host='mips-openwrt-linux' host_alias='mips-openwrt-linux' host_cpu='' host_os='' host_vendor='' htmldir='${docdir}' includedir='${prefix}/include' infodir='/usr/info' install_sh='${SHELL} /home/alex/Downloads/SDK/OpenWrt-SDK-15.05-ar71xx-nand_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64/build_dir/target-mips_34kc_uClibc-0.9.33.2/pcre-8.39/install-sh' libdir='${exec_prefix}/lib' libexecdir='/usr/lib' localedir='${datarootdir}/locale' localstatedir='/var' mandir='/usr/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pcre_have_bits_type_traits='' pcre_have_long_long='' pcre_have_type_traits='' pcre_have_ulong_long='' pdfdir='${docdir}' prefix='/usr' program_transform_name='s&$$&&;s&^&&' psdir='${docdir}' sbindir='/usr/sbin' sharedstatedir='${prefix}/com' sysconfdir='/etc' target_alias='mips-openwrt-linux' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "PCRE" #define PACKAGE_TARNAME "pcre" #define PACKAGE_VERSION "8.39" #define PACKAGE_STRING "PCRE 8.39" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "pcre" #define VERSION "8.39" configure: exit 7
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-10/136490.htm
相關文章