win7操作系统用什么版本的bisonflex_win7用哪个版本好
1.linux 怎么升级默认装好的php和mysql到5.0
2.在android4.0.几的版本上会出现这个问题,在线求解答
linux from scratch 操作:
第一部分:环境设置
1、安装VirtualBox3.1.8
2、安装Linux操作系统(RHEL或Centos等,不能用ubuntu,因为要有patch,m4,-1.4.10,autoconf,yacc等程序)
3、安装增强功能并分配固定数据空间,设置/mnt/share共享:
mount -t vboxsf share /mnt/share
如果要开机就挂上共享,可以在/etc/fstab的最后加上
share /mnt/share vboxsf rw,gid=100,uid=1000,auto 0 0
4、解压lfslivecd-x86-6.3-42145.iso里的lfs-sources到share
#另外,也可以不用安装操作系统,直接用lfslivecd-x86-6.3-42145.iso作启动盘;
#启动后选/Asia/shanghai及Chinese(simpifiled utf8),然后可以用cfdisk /dev/hda进行分区
#启动盘的/usr/share/LFS-BOOK-6.3-HTML目录下就是LFS手册
#由于要复制粘贴,所以要开启ssh服务,virtualbox设置的网络里将NAT(网格地址转换)改为Bridged Adapter,界面名称选1x1
11b/g/n Wireless LAN PCI Express Half Mini Card Adapter(这是我的无线卡).
#启动后用ifconfig就能查看地址,然后再用passwd给root设个密码(不然客户端不能登录)
#然后启动服务/etc/rc.d/init.d/sshd start
#最后再Windows里用putty连接ssh服务器(在Session界面的HostName里输入IP,Connection
Type里选SSH即可)。
#如果要用putty传输文件,则打开cmd窗口,输入命令:pscp 源文件路径 root@hostIp:目的路径
如将aaa.jpg传到/home下,则:pscp aaa.jpg root@192.168.0.101:/home
5、将/mnt/share/lfs-sources设置到根目录的lfs-sources:
ln -s /mnt/share/lfs-sources /
6、添加一个8G的虚拟硬盘(硬盘大小最好不小于2G)
7、分区并格式化硬盘:
8、生成sources及tools目录
9.将tools挂至根目录:
ln -sv $LFS/tools /
10.生成lfs用户
11.生成lfs用户环境
12.重新进入环境
第二部分:工具链制作
13.编译binutils
14.编译gcc
15.安装内核头文件Linux API Headers
16.编译Glibc-2.5.1
17.调整工具链
18.测试工具链的调整
19.测试工具安装
20.GCC安装(第二遍)
21.安装Binutils(第二遍)
22.安装Ncurses
23.安装Bash
24.安装Bzip
25.安装Coreutils
26.安装Diffutils
27.安装Findutils
28.安装Gawk
29.Gettext
30.Grep
31.Gzip
32.Make
33.Patch
34.安装Perl
35.安装Sed
36.安装Tar
37.安装Texinfo
38.安装Util-linux
39.删除些不用的东西(可不执行)
第三部分 主机中设置lfs
40.回到主机并建三个目录
41.建设备文件
43.复制源码到目标系统下
44.chroot到目标系统下(将新盘作为根目录)
45.建立目标系统目录结构
46.创建几个必要的链接
47.创建root及nobody用户组
48.重加载bash
第四部分 软件包安装
50.重启的环境恢复
51.进入软件包目录
52.安装Linux头
53.安装Man-pages
54.安装Glibc
55.调整工具链
56.调整specs文件
57.测试是否调整成功
58.安装Binutils
59.安装GCC
60.测试GCC是否安装正确
61.安装Berkeley
62.安装Sed
63.安装E2fsprogs
64.安装Coreutils
65.安装Iana-Etc
66.安装M4-1.4.10
67.安装Bison
68.安装Ncurses
69.安装Procps
70.安装Liool
71.安装Perl
72.安装Readline
73.安装Zlib
74.安装Autoconf
75.安装Automake
76.安装Bash
77.安装Bzip
78.安装Diffutils
79.安装File
80.安装Findutils
81.Flex
82.安装Grub
83.安装Gawk
84.安装Gettext
85.安装Grep
86.安装Groff
87.安装Gzip
88.安装Inetutils
89.安装IPRoute
90.安装kbd
91.安装Less
92.安装Make
93.安装Man-DB
94.安装Mktemp
95.安装Module-Init-Tools
96.安装Patch
.安装Psmisc
98.安装Shadow
99.安装Sysklogd
100.安装Sysvinit
101.安装Tar
102.安装Texinfo
103.安装Udev
104.安装Util-linux
105.安装Vim
106.退出chroot环境
第五部分 安装系统
107.从现在到制作结束,重启后设置
108.生成相关文件
109.安装内核
110.安装Grub
111.设置Grub启动菜单(注意,如果是两个分区则应修改root选项为hd0,1及/dev/hda2)
112.将menu.lst连接到/etc目录
113.结束
logout
至此,已经全部安装完成,可以启动自己的系统了。
-----------------------------------------------------------------------
另:
114.安装Linux2.6.37版本(linux-2.6.37.tar.bz2)
Perl和iprout要用更高版本,用:
perl-5.14.1.tar.bz2
iproute2-3.3.0.tar.bz2
115.解压initrd文件
116.制作内存启动盘
linux 怎么升级默认装好的php和mysql到5.0
每个 DBA 是不是都有过删库的经历?删库了没有备份怎么办?备份恢复后无法启动服务什么情况?表定义损坏数据无法读取怎么办??
我曾遇到某初创互联网企业,因维护人员不规范的备份恢复操作,导致系统表空间文件被初始化,上万张表无法读取,花了数小时才抢救回来。
当你发现数据无法读取时,也许并非数据丢失了,可能是 DBMS 找不到描述数据的信息。
背景
先来了解下几张关键的 InnoDB 数据字典表,它们保存了部分表定义信息,在我们恢复表结构时需要用到。
SYS_TABLES 描述 InnoDB 表信息CREATE TABLE `SYS_TABLES` (`NAME` varchar(255) NOT NULL DEFAULT '', ?表名`ID` bigint(20) unsigned NOT NULL DEFAULT '0', ?表id`N_COLS` int(10) DEFAULT NULL,`TYPE` int(10) unsigned DEFAULT NULL,`MIX_ID` bigint(20) unsigned DEFAULT NULL,`MIX_LEN` int(10) unsigned DEFAULT NULL,`CLUSTER_NAME` varchar(255) DEFAULT NULL,`SPACE` int(10) unsigned DEFAULT NULL, ? 表空间idPRIMARY KEY (`NAME`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_INDEXES 描述 InnoDB 索引信息CREATE TABLE `SYS_INDEXES` ( ?`TABLE_ID` bigint(20) unsigned NOT NULL DEFAULT '0', 与sys_tables的id对应 ?`ID` bigint(20) unsigned NOT NULL DEFAULT '0', ?索引id ?`NAME` varchar(120) DEFAULT NULL, 索引名称 ?`N_FIELDS` int(10) unsigned DEFAULT NULL, 索引包含字段的个数 ?`TYPE` int(10) unsigned DEFAULT NULL, ?`SPACE` int(10) unsigned DEFAULT NULL, ?存储索引的表空间id ?`PE_NO` int(10) unsigned DEFAULT NULL, ?索引的root page id ?PRIMARY KEY (`TABLE_ID`,`ID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_COLUMNS 描述 InnoDB 表的字段信息CREATE TABLE `SYS_COLUMNS` ( ?`TABLE_ID` bigint(20) unsigned NOT NULL, 与sys_tables的id对应 ?`POS` int(10) unsigned NOT NULL, 字段相对位置 ?`NAME` varchar(255) DEFAULT NULL, 字段名称 ?`MTYPE` int(10) unsigned DEFAULT NULL, ?字段编码 ?`PRTYPE` int(10) unsigned DEFAULT NULL, 字段校验类型 ?`LEN` int(10) unsigned DEFAULT NULL, ?字段字节长度 ?`PREC` int(10) unsigned DEFAULT NULL, 字段精度 ?PRIMARY KEY (`TABLE_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_FIELDS 描述全部索引的字段列CREATE TABLE `SYS_FIELDS` ( ?`INDEX_ID` bigint(20) unsigned NOT NULL, ?`POS` int(10) unsigned NOT NULL, ?`COL_NAME` varchar(255) DEFAULT NULL, ?PRIMARY KEY (`INDEX_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;./storage/innobase/include/dict0boot.h 文件定义了每个字典表的 index id,对应 id 的 page 中存储着字典表的数据。
这里我们需要借助 undrop-for-innodb 工具恢复数据,它能读取表空间信息得到 page,将数据从 page 中提取出来。
# wget s://github/chhabhaiya/undrop-for-innodb/archive/master.zip# yum install -y gcc flex bison# make# make sys_parser
# ./sys_parser 读取表结构信息
sys_parser [-h] [-u] [-p] [-d] databases/table
stream_parser 读取 InnoDB page 从 ibdata1 或 ibd 或分区表
# ./stream_parserYou must specify file with -f optionUsage: ./stream_parser -f <innodb_datafile> [-T N:M] [-s size] [-t size] [-V|-g] ?Where: -h - Print this help -V or -g ? - Print debug information -s size - Amount of memory used for disk cache (allowed examples 1G 10M). Default 100M -T - retrieves only pages with index id = NM (N - high word, M - low word of id) -t size - Size of InnoDB tablespace to scan. Use it only if the parser can't determine it by himself.
c_parser 从 innodb page 中读取记录保存到文件
# ./c_parserError: Usage: ./c_parser -4|-5|-6 [-dDV] -f <InnoDB page or dir> -t table.sql [-T N:M] [-b <external pages directory>] ?Where -f <InnoDB page(s)> -- InnoDB page or directory with pages(all pages should he same index_id) -t <table.sql> -- CREATE statement of a table -o <file> -- Se dump in this file. Otherwise print to stdout -l <file> -- Se SQL statements in this file. Otherwise print to stderr -h ?-- Print this help -d ?-- Process only those pages which potentially could he deleted records (default = NO) -D ?-- Recover deleted rows only (default = NO) -U ?-- Recover UNdeleted rows only (default = YES) -V ?-- Verbose mode (lots of debug information) -4 ?-- innodb_datafile is in REDUNDANT format -5 ?-- innodb_datafile is in COMPACT format -6 ?-- innodb_datafile is in MySQL 5.6 format -T ?-- retrieves only pages with index id = NM (N - high word, M - low word of id) -b <dir> -- Directory where external pages can be found. Usually it is pages-XXX/FIL_PE_TYPE_BLOB/ -i <file> -- Read external pages at their offsets from <file>. -p prefix -- Use prefix for a directory name in LOAD DATA INFILE command
接下来,我们演示场景的几种数据恢复场景。
场景1:drop table
是否启用了 innodb_file_per_table 其恢复方法有所差异,当发生误删表时,应尽快停止MySQL服务,不要启动。若 innodb_file_per_table=ON,最好只读方式重新挂载文件系统,防止其他进程写入数据覆盖之前块设备的数据。
如果评估记录是否被覆盖,可以表中某些记录的作为关键字看是否能从 ibdata1 中筛选出。
#?grep WOODYHOFFMAN ibdata1
Binary file ibdata1 matches
也可以使用 bvi(适用于较小文件)或 hexdump -C(适用于较大文件)工具
以表 sakila.actor 为例CREATE TABLE `actor` (`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,`first_name` varchar(45) NOT NULL,`last_name` varchar(45) NOT NULL,`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`actor_id`),KEY `idx_actor_last_name` (`last_name`)) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8
首先恢复表结构信息1. 解析系统表空间获取 page 信息
./stream_parser -f /var/lib/mysql/ibdata1
2. 新建一个 schema,把系统字典表的 DDL 导入
cat dictionary/SYS_* | mysql recovered
3. 创建恢复目录
mkdir -p dumps/default
4. 解析系统表空间包含的字典表信息,
./c_parser -4f pages-ibdata1/FIL_PE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql > dumps/default/SYS_TABLES 2> dumps/default/SYS_TABLES.sql./c_parser -4f pages-ibdata1/FIL_PE_INDEX/0000000000000002.page -t dictionary/SYS_COLUMNS.sql > dumps/default/SYS_COLUMNS 2> dumps/default/SYS_COLUMNS.sql./c_parser -4f pages-ibdata1/FIL_PE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql > dumps/default/SYS_INDEXES 2> dumps/default/SYS_INDEXES.sql./c_parser -4f pages-ibdata1/FIL_PE_INDEX/0000000000000004.page -t dictionary/SYS_FIELDS.sql > dumps/default/SYS_FIELDS 2> dumps/default/SYS_FIELDS.sql
5. 导入恢复的数据字典
cat dumps/default/*.sql | mysql recovered
6. 读取恢复后的表结构信息
./sys_parser -pmsandbox -d recovered sakila/actor
由于 5.x 版本 innodb 引擎并非完整记录表结构信息,会丢失 AUTO_INCREMENT 属性、二级索引和外键约束, DECIMAL 精度等信息。
若是 mysql 5.5 版本 frm 文件被从系统删除,在原目录下 touch 与原表名相同的 frm 文件,还能读取表结构信息和数据。若只有 frm 文件,想要获得表结构信息,可使用 mysqlfrm --diagnostic /path/to/xxx.frm,连接 mysql 会显示字符集信息。
innodb_file_per_table=OFF
因为是共享表空间模式,数据页都存储在 ibdata1,可以从 ibdata1 文件中提取数据。
1. 获取表的 table id,sys_table 存有表的 table id,sys_table 表 index id 是1,所以从0000000000000001.page 获取表 id./c_parser -4Df pages-ibdata1/FIL_PE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql | grep sakila/actor000000000B28 ?2A000001430D4D ?SYS_TABLES ?"sakila/actor" ?158 ?4 ?1 0 ? 0 ? "" ?0000000000B28 ?2A000001430D4D ?SYS_TABLES ?"sakila/actor" ?158 ?4 ?1 0 ? 0 ? "" ?0
2. 利用 table id 获取表的主键 id,sys_indexes 存有表索引信息,innodb 索引组织表,找到主键 id 即找到数据,sys_indexes 的 index id 是3,所以从0000000000000003.page 获取主键 id
./c_parser -4Df pages-ibdata1/FIL_PE_INDEX/0000000000000003.page -t dictionary/SYS_INDEXES.sql | grep 158000000000B28 2A000001430BCA ?SYS_INDEXES 158 376 "PRIMARY" ? 1 ? 3 ? 0 ? 4294967295000000000B28 2A000001430C3C ?SYS_INDEXES 158 377 "idx_actor_last_name" 1 ? 0 ? 0 ? 4294967295000000000B28 2A000001430BCA ?SYS_INDEXES 158 376 "PRIMARY" ? 1 ? 3 ? 0 ? 4294967295000000000B28 2A000001430C3C ?SYS_INDEXES 158 377 "idx_actor_last_name" 1 ? 0 ? 0 ? 4294967295
3. 知道了主键 id,就可以从对应 page 中提取表数据,并生成 sql 文件。
./c_parser -4f pages-ibdata1/FIL_PE_INDEX/0000000000000376.page -t sakila/actor.sql > dumps/default/actor 2> dumps/default/actor_load.sql
4. 最后导入恢复的数据
cat dumps/default/*.sql | mysql sakila
更多详细情况点击网页链接
请点击输入描述
在android4.0.几的版本上会出现这个问题,在线求解答
是你的MYSQL路径设置错了....
注意大小写的区分,比如你的MYSQL安装包是大写的 。
而你的PHP 配置路径 mysql 小写 那么就会产生这样的问题.
建议你重新安装PHP 和 MYSQL
如果你要整体整合apache2 mysql5.0 php5
在编译之前还有升级一些支持库
执行命令:# yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel liiff-devel freetype-devel pam-devel kernel
我给写个PHP和MYSQL的编译过程.
这里要注意的是,需要先安装mysql才能装PHP
[mysql] 安装路径: /usr/local/mysql //数据库目录你可以自己设置
比如你需要安装的MYSQL为:mysql-5.0.45-linux-i686.tar.gz
将mysql-5.0.45-linux-i686.tar.gz 放到 /usr/local/src 下
#cd /usr/local/src
#tar -zvxf mysql-5.0.45-linux-i686.tar.gz
#mv mysql-5.0.45/ /usr/local/mysql //移动
#groupadd mysql //创建mysql用户组
#cd /usr/local/mysql
#useradd -g mysql mysql //创建 mysql用户
#chown -R mysql . //注意后面有个 “.”
#chgrp -R mysql .
#scripts/mysql_install_db --user=mysql //初始化数据库
#chown -R root . //给root 最高权限
#chown -R mysql data //让mysql 对data [数据库]有最高权限
#cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
// 让mysql服务随系统启动
#chown root:root /etc/rc.d/init.d/mysqld //让root有启动权限.
#chmod 755 /etc/rc.d/init.d/mysqld
#cp ./support-files/my-huge.cnf /etc/my.cnf //移动配置文件.
#mv /usr/local/mysql/data /var/lib/mysql //这一步是移动数据库。你也可以不需要执行这一步.....如果安装出错,最好不要执行这一步,因为数据库权限经常会引起mysql运行不稳定
#bin/mysqld_safe --user=mysql & //连接数据库,如果安装成功.
会有如下提示:Starting mysqld daemon with databases from /var/lib/mysql //后面那是数据库路径
[PHP] 安装路径: /usr/local/php
#cd 到安装包所在目录
# tar xjvf 你的PHP版本文件名
# cd php-X.X.X //这里就是你解压后的那个目录名
值得注意的是php的安装需要一些库.
就是:libxml gd2
# ./configure \
"--prefix=/usr/local/php" \
"--with-apxs2=/usr/local/apache2/bin/apxs" \
"--with-config-file-path=/usr/local/php/etc" \
"--with-mysql=/usr/local/mysql" \
"--with-libxml-dir=/usr/local/libxml2" \
"--with-gd=/usr/local/gd2" \
"--with-jpeg-dir" \
"--with-png-dir" \
"--with-bz2" \
"--with-freetype-dir" \
"--with-iconv-dir" \
"--with-zlib-dir " \
"--with-openssl=/usr/local/openssl" \
"--with-mcrypt=/usr/local/libmcrypt" \
"--enable-soap" \
"--enable-gd-native-ttf" \
"--enable-ftp" \
"--enable-mbstring" \
"--enable-exif" \
"--disable-ipv6" \
"--disable-cgi" \
"--disable-cli"
# make
# make install
# mkdir /usr/local/php/etc
# cp php.ini-dist /usr/local/php/etc/php.ini
在Ubuntu12.04(64位)编译Android4.0源码时,遇到各种各样的问题。不是缺这个,就是少那个。现把这些问题和解决方法罗列出来(最新统计)。
错误(1):
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
解决:
sudo apt-get install libc6-dev-i386
错误(2):
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1
解决:
sudo apt-get install g++-4.4-multilib
错误(3):
external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1
解决:
sudo apt-get install zlib1g-dev
错误(4):
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决:
sudo apt-get install lib32z1-dev
错误(5):
bison -d -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127
解决:
sudo apt-get install bison
错误(6):
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
解决:
sudo apt-get install flex
错误(7):
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
解决:
sudo apt-get install lib32ncurses5-dev
错误(8):
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1
解决:
sudo apt-get install libx11-dev
错误(9):
sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25
make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'
解决:
sudo apt-get install gperf
错误(10):
build/core/ja.mk:9: *** bin: Target ja module does not define any source or resource files. Stop.
解决:
删除源码根目录下的bin文件夹,这个文件夹是导入eclipse时创建的。
错误(11):
/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] 错误 1
解决/usr/bin/ld: Cannot Find -lxxx错误
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
解决办法是(方法一):
[root@9-104 php-5.2.8]# updatedb
[root@9-104 php-5.2.8]# locate libltdl //提示/usr/bin/ld: cannot find -lxxx ,查找时候前面加lib:libxxx 住一 第一个l去掉
/usr/lib64/libltdl.so.3
/usr/lib64/libltdl.so.3.1.4
/usr/share/liool/libltdl
/usr/share/liool/libltdl/COPYING.LIB
/usr/share/liool/libltdl/Makefile.am
/usr/share/liool/libltdl/Makefile.in
/usr/share/liool/libltdl/README
/usr/share/liool/libltdl/acinclude.m4
/usr/share/liool/libltdl/aclocal.m4
/usr/share/liool/libltdl/config-h.in
/usr/share/liool/libltdl/config.guess
...
注意拉:
[root@9-104 php-5.2.8]# ln -s /usr/lib64/libltdl.so.3 /usr/lib64/libltdl.so
原理:给查找到的libxxx文件做软链接
ln -s /usr/lib64/libxxx.so.X(X代表数字) /usr/lib64/lxxx.so
解决办法是(方法二):
apt-get install libxx-dev(如:apt-get install libltdl-dev)
/usr/bin/ld: cannot find -lXt 这种情况一般就是库找不到,有可能你没安装,有可能你安装了但是路径不对。你可以先用 #locate libxt查看下,时候跟这有光的库,没有就安装。
以上两种办法若再出现如下错误:
<built-in>:0:0: note: this is the location of the previous definition
host StaticLib: libOpenglCodecCommon (out/host/linux-x86/obj/STATIC_LIBRARIES/li
bOpenglCodecCommon_intermediates/libOpenglCodecCommon.a)
host SharedLib: libOpenglRender (out/host/linux-x86/obj/lib/libOpenglRender.so)
/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] Error 1
解决方法(办法三亲测一定可行):$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
错误(12):
development/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp:22: fatal error: GL/glx.h: No such file or directory compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1
解决方法:sudo apt-get install libgl1-mesa-dev
错误(13):
host SharedLib: lib64EGL_translator (out/host/linux-x86/obj/lib/lib64EGL_translator.so)
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/lib64EGL_translator.so] Error 1
make: *** Waiting for unfinished jobs....
解决方法 :
sudo apt-get install libglu1-mesa-dev
错误(14):
host StaticLib: libGLcommon (out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon
_intermediates/libGLcommon.a)
host SharedLib: libGLES_CM_translator (out/host/linux-x86/obj/lib/libGLES_CM_tra
nslator.so)
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] Error 1
由于libGL.so系统默认没有进行库路径下的链接,还需要手动链接一下
解决方法: sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
解决方法: sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so
在网上搜到上面的解决方法,可是按照上述方法做了,问题依旧。经过多方实验,才发现问题所在。通过apt-get install的库不是libGL.so.1.2了。而是libGL.so.1.2.0.
错误(15):
make: *** [out/host/linux-x86/obj/EXECUTABLES/obool_intermediates/Main.o] Error 1
后来发现了,原来是Ubuntu11.10里的gcc和g++版本太高了,于是执行下面的操作:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
把默认的4.6版本换为了4.4,继续编译源码,又出现了另一个错误,大致提示为:
g++ selected multilib '32' not installed
继续奋战吧,安装相应的工具吧:sudo apt-get install g++-4.4-multilib,现在正在make -(开启多线程编译(不推荐),可能有时候会出现问题,最好是直接make)
2.解决各种依赖问题
首先安装一些库
View Code BASH1 sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev
2 sudo apt-get install libwxgtk2.6-dev squashfs-tools build-essential
3 sudo apt-get install zlib1g-dev pngcrush schedtool ia32-libs libncurses5-dev
这些库可能不全,如果出现问题,再google一下吧
2.error: “_FORTIFY_SOURCE” redefined [-Werror]
这个问题,据说与gcc版本有关,4.4版不会出现。
后来在google code 上找到了使用gcc 4.6编译的方法
修改build/core/combo/HOST_linux-x86.mk 文件 line 61
View Code BASH1 -HOST_GLOBAL_CFLS += -D_FORTIFY_SOURCE=0
2 +HOST_GLOBAL_CFLS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
这是CyanogenMod打上的补丁
3.No rule to make target ‘out/target/product/generic/obj/lib/libcamera.so’
修改 /home/Android-2.3.4/frameworks/base/services/camera/libcameraservice/Android.mk,USE_CAMERA_STUB:=false ->ture
View Code BASH1 LOCAL_PATH:= $(call my-dir)
2
3 # Set USE_CAMERA_STUB if you don't want to use the hardware camera.
4
5 # force these builds to use camera stub only
6 ifneq ($(filter sooner generic sim,$(TARGET_DEVICE)),)
7 USE_CAMERA_STUB:=true
8 endif
9
10 #########CHANGE THIS LINE############
11 USE_CAMERA_STUB:=true
12
13 ifeq ($(USE_CAMERA_STUB),)
14 USE_CAMERA_STUB:=false
15 endif
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。