編譯安裝glibc
本文轉自百度空間:http://hi.baidu.com/756091339/item/83bf19820e5d61e8e596e0b7
=========================分割線=========================
編譯步驟:
下載glibc-2.15.tar.gz和補丁包glibc-ports-2.15.tar.gz
解壓
$mv glibc-ports-2.15 glibc-2.15/ports
$mkdir glibc-build-2.15 &&cd glibc-build-2.15
$ ../glibc-2.15/configure \
--prefix=/usr/local/glibc_mips \
CC=mipsel-linux-gcc \
--host=mipsel-linux \
--build=i686-pc-linux-gnu \
--enable-add-on=nptl \
libc_cv_forced_unwind=yes \
libc_cv_c_cleanup=yes \
libc_cv_mips_tls=yes \
libc_cv_gnu99_inline=yes
ok,沒問題
$make &&make install
大功告成
##########################################################################
下面是我編譯時的過程和遇到的問題及解決:
##########################################################################
$tar xvf glibc-2.16.0.tar.bz2
$cd glibc-2.16.0
$./configure --prefix=/usr/local/glibc //先不加其他選項,除了安裝路徑,一切預設,網上一般配置arm的選項如下 --prefix=$HOME/usr/arm --with-headers=$HOME/usr/arm/glibc/arm-linux-glibc/include --with-libs=$HOME/usr/arm/glibc/arm-linux-glibc/lib
報錯:
configure: error: you must configure in a separate build directory
很奇怪的問題,必須配置一個構建目錄,剛開始以為是安裝目錄為建立
$mkdir /usr/local/glibc
問題仍然存在,百度之
$mkdir ../glibc-build && cd ../glibc-build
$../glibc-2.16.0/configure --prefix=/usr/local/glibc
出現新的問題:
configure: WARNING:
*** These auxiliary programs are missing or incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.
checking LD_LIBRARY_PATH variable... contains current directory
configure: error:
*** LD_LIBRARY_PATH shouldn't contain the current directory when
*** building glibc. Please change the environment variable
*** and run configure again.
第一個警告不用管它,第二個LD_LIBRARY_PATY也會有錯?我的這個路徑用了多少天了。仔細看提示,不應包含當前路徑。開啟~/.bash_profile $cat ~/.bash_profile export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH這也沒當前路徑啊。還是百度吧。 一個兄弟的解釋是這樣“LD_LIBRARY_PATH不能以終結符作為開始和最後一個字元,不能有2個終結符連在一起,我的LD_LIBRARY_PATH為 :/usr/local/firefox:/usr/local/firefox,只要在前面加上一個路徑,不讓:出現在第一個字元就可以了 ” 原來如此,第一個字元不能是":",修改~/.bash_profile export LD_LIBRARY_PATH=/usr/local/lib export LD_LIBRARY_PATH
$../glibc-2.16.0/configure --prefix=/usr/local/glibc ls一下,發現,當前目錄生成了Makefile等一堆東西 $make && make install 沒問題 下一步開始交叉編譯 $mkdir ../glibc-build-mips && cd ../glibc-build-mips $ ../glibc-2.16.0/configure --prefix=/usr/local/glibc_mips CC=mipsel-linux-gcc --host=mips 出現新的問題: configure: running configure fragment for add-on libidn configure: running configure fragment for add-on nptl *** The GNU C library is currently not available for this platform. *** So far nobody cared to port it and if there is no volunteer it *** might never happen. So, if you have interest to see glibc on *** this platform visit *** http://www.gnu.org/software/libc/porting.html *** and join the group of porters 看起來像是需要path,下載glibc-ports-2.16.tar.gz,放在原始碼包目錄,解壓
$ ../glibc-2.16.0/configure \
--prefix=/usr/local/glibc_mips \
CC=mipsel-linux-gcc \
CXX=mipsel-linux-g++ \
--host=mips \
--enable-add-ons=/home/hb/code/glibc/glibc-ports-2.16.0/sysdeps/mips
仍然報錯:
configure: error: fragment must set $libc_add_on_canonical
改為:
$ ../glibc-2.16.0/configure \
--prefix=/usr/local/glibc_mips \
CC=mipsel-linux-gcc \
CXX=mipsel-linux-g++ \
--host=mips \
--enable-add-ons
報錯:
configure: error: The mipsel is not supported.
這樣不行,谷歌半天,總算知道補丁怎麼用的了。把補丁目錄拷到glibc目錄下,改名為ports
$mv glibc-ports-2.16.0/ glibc-2.16.0/ports
$../glibc-2.16.0/configure \
--prefix=/usr/local/glibc_mips \
CC=mipsel-linux-gcc \
CXX=mipsel-linux-g++ \
--host=mipsel-linux \
--build=i686-pc-linux-gnu \
--enable-add-on
繼續報錯:
configure: error:
*** These critical programs are missing or too old: ld as
*** Check the INSTALL file for required versions.
這個問題可折騰死我了。弄了好半天,就是不行,最後google發現,原來是ld和as版本不對,不是太高就是太低。
configure中找到$AS --version
發現版本是這麼匹配的2.1*.*
$mipsel-linux-ld
GNU ld (GNU Binutils) 2.18.50.20080908
原來是這樣,在configure版本號那一行修改,最後的括號前面加入
|2.18.50.×
as那一行也同樣修改
然後
$make
開始編譯,看起來不錯
好半天后,編譯也報錯了
In file included from ../include/uchar.h:1,
from mbrtoc16.c:23:
../wcsmbs/uchar.h:47:5: error: #error "<uchar.h> requires ISO C11 mode"
In file included from ../include/uchar.h:1,
from mbrtoc16.c:23:
../wcsmbs/uchar.h:52: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'char16_t'
../wcsmbs/uchar.h:53: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'char32_t'
../wcsmbs/uchar.h:61: error: expected ')' before '*' token
../wcsmbs/uchar.h:66: error: expected declaration specifiers or '...' before 'char16_t'
../wcsmbs/uchar.h:73: error: expected ')' before '*' token
../wcsmbs/uchar.h:78: error: expected declaration specifiers or '...' before 'char32_t'
mbrtoc16.c:37: error: expected ')' before '*' token
make[2]: *** [/home/hb/code/glibc/glibc-build-mips/wcsmbs/mbrtoc16.o] 錯誤 1
make[2]:正在離開目錄 `/home/hb/code/glibc/glibc-2.16.0/wcsmbs'
make[1]: *** [wcsmbs/subdir_lib] 錯誤 2
make[1]:正在離開目錄 `/home/hb/code/glibc/glibc-2.16.0'
make: *** [all] 錯誤 2
看看這個標頭檔案咋回事
$ vim ../glibc-2.16.0/wcsmbs/uchar.h
#if defined __GNUC__ && !defined __USE_ISOCXX11/* Define the 16-bit and 32-bit character types. Use the information
provided by the compiler. */
# if !defined __CHAR16_TYPE__ || !defined __CHAR32_TYPE__
# if defined __STDC_VERSION__ && __STDC_VERSION__ < 201000L
# error "<uchar.h> requires ISO C11 mode"
# else
# error "definitions of __CHAR16_TYPE__ and/or __CHAR32_TYPE__ missing"
# endif
# endif
明白了,原來是需要c11支援,mipsel-linux-gcc -v一下,我的支援c99.原來如此。暫時沒招了,我還做不到修改c11的支援,只剩兩個辦法,不用這個glibc版本或者重新編譯一個支援c11的交叉編譯器。編譯器需要做的比較多,暫時先換個低點的版本吧。
下載galibc-2.15版本
重複上面步驟,解壓tar包
解壓ports包
$mv glibc-ports-2.15 glibc-2.15/ports
$mkdir glibc-build-2.15 &&cd glibc-build-2.15
$ ../glibc-2.15/configure \
--prefix=/usr/local/glibc_mips \
CC=mipsel-linux-gcc \
--host=mipsel-linux \
--build=i686-pc-linux-gnu \
--enable-add-on=nptl \
libc_cv_forced_unwind=yes \
libc_cv_c_cleanup=yes \
libc_cv_mips_tls=yes \
libc_cv_gnu99_inline=yes
ok,沒問題
$make &&make install
庫已經編好了,但是不能直接使用,必須再用新的庫重編一遍編譯器才行。
相關推薦
編譯安裝glibc
本文轉自百度空間:http://hi.baidu.com/756091339/item/83bf19820e5d61e8e596e0b7 =========================分割線========================= 編譯步驟: 下
linux下編譯安裝glibc
IE下實現placeholder效果,支援文字框和密碼框 Apache模組 合併多個js/css 提高網頁載入速度 JavaScript跨域外掛 實現iframe的雙向跨域 改進erlang版本的protobuf,有一定效率提升 Lua非同步HTTPS請求庫,支援同時併發請
glibc-2.22的編譯安裝
本文轉自百度空間:http://hi.baidu.com/756091339/item/83bf19820e5d61e8e596e0b7 =========================分割線========================= 編譯步驟: 下
ubuntu14.04編譯安裝mysql5.6.28
add memory server 目錄 是否 efault mysql-bin cnblogs adl 一、安裝必備工具sudo apt-get install make bison g++ build-essential libncurses5-dev cmake nc
git安裝 編譯安裝
git一、安裝依賴 yum update -y #可以不做 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker wget https://github.c
LAMP 編譯安裝
lamp#軟件下載#開源博客Wordpress 下載地址:https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz#PHP 7 下載地址:http://cn2.php.net/distributions/php-7.1.4.tar.gz#apache
LNMP之編譯安裝PHP出現的問題
grep php 接下來 可能 don 星期 gre 目前 pat 2010年以前,互聯網公司最常用的Web服務組合就是LAMP(即Linux、Apache、MySQL、PHP),近幾年隨著Nginx Web服務的逐漸流行,又出現了新的Web服務環境組合--LNMP
CentOS 5.9裸機編譯安裝搭建LAMP
現在 local 搭建lamp redhat compile ins upd amp package Linux系統:CentOS 5.9,查看CentOS版本,命令如下: [[email protected]/* */ /]# cat /etc/
在CentOS 7上源碼編譯安裝MySQL 5.7
mysql source cmake 1.系統環境[[email protected]/* */ ~]# uname -r3.10.0-514.el7.x86_64 [[email protected]/* */ ~]# cat /etc/redhat-release
apache編譯安裝參數說明
top gre modules apach dbm 哪些 lib usr -h apache編譯安裝參數說明 ./configure //配置源代碼樹--prefix=/usr/local/apache2 //體系無關文件的頂級安裝目錄prefix ,也就apache的安裝
Centos6.5 編譯安裝Mysql 5.5.3.7
oca eight file ont libxml kconfig 最大值 fig toc 1、準備依賴包 yum install gcc* c++ * bison autoconfautomakezlib* libxml* ncurses-devellibmcrypt*
搭建Apache HTTP Server(編譯安裝)
bin con cnn 源碼 err 可能 方法 創建 部分 mkdir /apache #創建一個Apache目錄,位置隨你們習慣wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.25.tar.bz2 #下載a
linux編譯安裝mssql客戶端和配置php連接mssql
linux 客戶端 凡是連接數據庫,必須安裝客戶端,我一般寫博客都不寫原理,但是後來發現回頭看自己寫的自己都看不懂,所以這章博客會多一點原理性的東西。數據庫的連接一般都是在客戶端上完成的,MySQL也不例外,安裝mysql時一般都會這麽安裝:#yum install mysql mysql-serve
編譯安裝Nginx
linux nginx1.查看系統環境:[[email protected]/* */ html]#cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core) [[email protected]/* */ html]# u
Centos下Sphinx的下載與編譯安裝
onf total osi training art exe .gz clas com 官方下載地址 http://sphinxsearch.com/downloads/release/ 百度雲下載地址 https://pan.baidu.com/s/1gfmPbd5
Centos下Sphinx中文分詞編譯安裝測試---CoreSeek
orm 創建索引 auxiliary aclocal memcache acl inux mage arch 要支持中文分詞,還需要下載Coreseek,可以去官方搜索下載,這裏我用的4.1 百度雲下載地址: https://pan.baidu.com/s/1sl
yum && 編譯 安裝mysql 5.7 多實例
name mon symbol server-id service lin extra safe min yum安裝 [[email protected]/* */ ~]# wget http://repo.mysql.com/mysql57-community
Linux-rhel6.4 編譯安裝PHP,Nginx與php連接
linux php rhel 編譯安裝php 連接nginx 確定依賴包安裝gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl
Linux-bcmath編譯安裝
bcmath 編譯安裝 linux 進入php源碼目錄,找到bcmath,編譯安裝[[email protected]/* */ ~]# cd php-5.5.38/ext/bcmath/ [[email protected]/* */ bcmath]# /usr/loca
Ubuntu 編譯安裝搭配LNMP 環境
sage init ubun stat support ... col php安裝 啟動 這裏用Nginx1.2.0+mysql5.6.33+php5.6.2搭配安裝環境 ---------------------------------------------Nginx