Deepin15.7 Android8.1 编译 以及问题解决

前几天装了deepin15.7美滋滋,然后开始折腾编译.LOS15.1(android8.1),在此记录遇到的问题

1.大天朝下载源码是个问题,换个hosts即可,这里我用的是

https://github.com/googlehosts/hosts

手动黏贴hosts中的内容到/etc/hosts 拔掉网线重新插入即可

sudo gedit /etc/hosts

2.安装需要的依赖

sudo apt-get update && sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk3.0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-8-jre openjdk-8-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev gcc-multilib maven tmux screen w3m ncftp liblz4-tool pngquant rsync

不出意外这里安装lib32ncurses5-dev 会报如下错误

下列软件包有未满足的依赖关系:
 lib32ncurses5-dev : 依赖: libncurses5-dev (= 6.0+20170715-2)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决方法替换软件源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list

我这里用的阿里的文件如下

## Generated by deepin-installer
deb [by-hash=force] http://packages.deepin.com/deepin panda main contrib non-free
#deb-src http://packages.deepin.com/deepin panda main contrib non-free

deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe 
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe 
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe 
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe 
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe 
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe

更新下

sudo apt-get update

很好又出现一个错误

错误:3 http://mirrors.aliyun.com/ubuntu trusty-security InRelease                     
  由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

添加签名即可

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

完成
Executing: /tmp/apt-key-gpghome.RxSrDCHNRU/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

gpg: key 40976EAF437D05B5: 59 signatures not checked due to missing keys
gpg: 密钥 40976EAF437D05B5:公钥“Ubuntu Archive Automatic Signing Key <[email protected]>”已导入
gpg: 合计被处理的数量:1
gpg:           已导入:1

来,再执行更新

sudo apt-get update

然后安装刚才失败的lib32ncurses5-dev

sudo aptitude install  lib32ncurses5-dev

这里进行的是降级安装 输入y y y…即可

下列“新”软件包将被安装。         
  lib32ncurses5-dev{b} lib32tinfo-dev{ab} 
0 个软件包被升级,新安装 2 个,0 个将被删除, 同时 19 个将不升级。
需要获取 186 kB 的存档。解包后将要使用 842 kB。
下列软件包存在未满足的依赖关系:
 lib32ncurses5-dev : 依赖: lib32tinfo5 (= 5.9+20140118-1ubuntu1) but 6.0+20170715-2 is installed
                     依赖: lib32ncurses5 (= 5.9+20140118-1ubuntu1) but 6.0+20170715-2 is installed
                     依赖: libncurses5-dev (= 5.9+20140118-1ubuntu1) but 6.1+20180210-4 is installed
 lib32tinfo-dev : 依赖: lib32tinfo5 (= 5.9+20140118-1ubuntu1) but 6.0+20170715-2 is installed
下列动作将解决这些依赖关系:

     保持 下列软件包于其当前版本: 
1)     lib32ncurses5-dev [未安装的]
2)     lib32tinfo-dev [未安装的]   



是否接受该解决方案?[Y/n/q/?] n
下列动作将解决这些依赖关系:

      删除 下列软件包:                                                         
1)      deepin-libwine:i386 [2.18-14~rc1 (now)]                                 
2)      deepin-wine [2.18-14~rc1 (now)]                                         
3)      deepin-wine32:i386 [2.18-14~rc1 (now)]                                  
4)      deepin-wine32-preloader:i386 [2.18-14~rc1 (now)]                        
5)      deepin.com.qq.im:i386 [8.9.19983deepin23 (now)]                         
6)      deepin.com.wechat:i386 [2.6.2.31deepin0 (now)]                          
7)      libncurses-dev [6.1+20180210-4 (now)]                                   
8)      libncurses-dev:i386 [6.1+20180210-4 (now)]                              
9)      libncurses5:i386 [6.1+20180210-4 (now)]                                 
10)     libncurses5-dev:i386 [6.1+20180210-4 (now)]                             

      安装 下列软件包:                                                         
11)     libncurses5 [5.9+20140118-1ubuntu1 (trusty)]                            
12)     libtinfo-dev [5.9+20140118-1ubuntu1 (trusty)]                           

      降级 下列软件包:                                                         
13)     lib32ncurses5 [6.0+20170715-2 (now) -> 5.9+20140118-1ubuntu1 (trusty)]  
14)     lib32tinfo5 [6.0+20170715-2 (now) -> 5.9+20140118-1ubuntu1 (trusty)]    
15)     libncurses5-dev [6.1+20180210-4 (now) -> 5.9+20140118-1ubuntu1 (trusty)]
16)     libreadline6 [6.3-9 (now) -> 6.3-4ubuntu2 (trusty)]                     
17)     libtinfo5 [6.1+20180210-4 (now) -> 5.9+20140118-1ubuntu1 (trusty)]      
18)     libtinfo5:i386 [6.1+20180210-4 (now) -> 5.9+20140118-1ubuntu1 (trusty)] 
19)     ncurses-base [6.1+20180210-4 (now) -> 5.9+20140118-1ubuntu1 (trusty)]   
20)     ncurses-bin [6.1+20180210-4 (now) -> 5.9+20140118-1ubuntu1 (trusty)]    



是否接受该解决方案?[Y/n/q/?] y
下列软件包将被“降级”:
  lib32ncurses5 lib32tinfo5 libncurses5-dev libreadline6 libtinfo5 libtinfo5:i386 
  ncurses-base ncurses-bin 
下列“新”软件包将被安装。
  lib32ncurses5-dev lib32tinfo-dev{a} libncurses5{a} libtinfo-dev{a} 
下列软件包将被“删除”:
  deepin-libwine:i386{a} deepin-wine{a} deepin-wine32:i386{a} 
  deepin-wine32-preloader:i386{a} deepin.com.qq.im:i386{a} 
  deepin.com.wechat:i386{a} libncurses-dev{a} libncurses-dev:i386{a} 
  libncurses5:i386{a} libncurses5-dev:i386{a} libncursesw6:i386{u} 
0 个软件包被升级,新安装 4 个,8 个被降级,11 个将被删除, 同时 19 个将不升级。
需要获取 1,104 kB 的存档。解包后将释放 333 MB。
您要继续吗?[Y/n/?] y
读取: 1 http://mirrors.aliyun.com/ubuntu trusty/main amd64 ncurses-base all 5.9+20140118-1ubuntu1 [16.6 kB]
读取: 2 http://mirrors.aliyun.com/ubuntu trusty/main amd64 libreadline6 amd64 6.3-4ubuntu2 [116 kB]
读取: 3 http://mirrors.aliyun.com/ubuntu trusty/main i386 libtinfo5 i386 5.9+20140118-1ubuntu1 [70.8 kB]
读取: 4 http://mirrors.aliyun.com/ubuntu trusty/main amd64 libtinfo5 amd64 5.9+20140118-1ubuntu1 [75.0 kB]
读取: 5 http://mirrors.aliyun.com/ubuntu trusty/main amd64 libncurses5 amd64 5.9+20140118-1ubuntu1 [93.6 kB]
读取: 6 http://mirrors.aliyun.com/ubuntu trusty/main amd64 libncurses5-dev amd64 5.9+20140118-1ubuntu1 [170 kB]
读取: 7 http://mirrors.aliyun.com/ubuntu trusty/main amd64 libtinfo-dev amd64 5.9+20140118-1ubuntu1 [76.3 kB]
读取: 8 http://mirrors.aliyun.com/ubuntu trusty/main amd64 ncurses-bin amd64 5.9+20140118-1ubuntu1 [137 kB]
读取: 9 http://mirrors.aliyun.com/ubuntu trusty/main amd64 lib32ncurses5 amd64 5.9+20140118-1ubuntu1 [92.9 kB]
读取: 10 http://mirrors.aliyun.com/ubuntu trusty/main amd64 lib32tinfo5 amd64 5.9+20140118-1ubuntu1 [70.3 kB]
读取: 11 http://mirrors.aliyun.com/ubuntu trusty/main amd64 lib32tinfo-dev amd64 5.9+20140118-1ubuntu1 [69.1 kB]
读取: 12 http://mirrors.aliyun.com/ubuntu trusty/main amd64 lib32ncurses5-dev amd64 5.9+20140118-1ubuntu1 [117 kB]
已下载 1,104 kB,耗时 1秒 (1,960 kB/s)    
(正在读取数据库 ... 系统当前共安装有 195281 个文件和目录。)
正在卸载 deepin.com.qq.im:i386 (8.9.19983deepin23) ...
正在卸载 deepin.com.wechat:i386 (2.6.2.31deepin0) ...
正在卸载 deepin-wine32-preloader:i386 (2.18-14~rc1) ...
正在卸载 deepin-wine (2.18-14~rc1) ...
正在卸载 deepin-wine32:i386 (2.18-14~rc1) ...
正在卸载 deepin-libwine:i386 (2.18-14~rc1) ...
正在卸载 libncurses5-dev:i386 (6.1+20180210-4) ...
正在卸载 libncurses5:i386 (6.1+20180210-4) ...
dpkg: 警告: 即将把 ncurses-base 从 6.1+20180210-4 降级到 5.9+20140118-1ubuntu1
(正在读取数据库 ... 系统当前共安装有 193492 个文件和目录。)
正准备解包 .../ncurses-base_5.9+20140118-1ubuntu1_all.deb  ...
正在将 ncurses-base (5.9+20140118-1ubuntu1) 解包到 (6.1+20180210-4) 上 ...
正在设置 ncurses-base (5.9+20140118-1ubuntu1) ...
dpkg: 警告: 即将把 libreadline6:amd64 从 6.3-9 降级到 6.3-4ubuntu2
(正在读取数据库 ... 系统当前共安装有 193488 个文件和目录。)
正准备解包 .../libreadline6_6.3-4ubuntu2_amd64.deb  ...
正在将 libreadline6:amd64 (6.3-4ubuntu2) 解包到 (6.3-9) 上 ...
dpkg: 警告: 即将把 libtinfo5:amd64 从 6.1+20180210-4 降级到 5.9+20140118-1ubuntu1
正准备解包 .../libtinfo5_5.9+20140118-1ubuntu1_amd64.deb  ...
正在反配置 libtinfo5:i386 (6.1+20180210-4) ...
正在将 libtinfo5:amd64 (5.9+20140118-1ubuntu1) 解包到 (6.1+20180210-4) 上 ...
dpkg: 警告: 即将把 libtinfo5:i386 从 6.1+20180210-4 降级到 5.9+20140118-1ubuntu1
正准备解包 .../libtinfo5_5.9+20140118-1ubuntu1_i386.deb  ...
正在将 libtinfo5:i386 (5.9+20140118-1ubuntu1) 解包到 (6.1+20180210-4) 上 ...
正在设置 libtinfo5:amd64 (5.9+20140118-1ubuntu1) ...
正在设置 libtinfo5:i386 (5.9+20140118-1ubuntu1) ...
正在选中未选择的软件包 libncurses5:amd64。
(正在读取数据库 ... 系统当前共安装有 193487 个文件和目录。)
正准备解包 .../libncurses5_5.9+20140118-1ubuntu1_amd64.deb  ...
正在解包 libncurses5:amd64 (5.9+20140118-1ubuntu1) ...
(正在读取数据库 ... 系统当前共安装有 193495 个文件和目录。)
正在卸载 libncurses-dev:i386 (6.1+20180210-4) ...
dpkg: libncurses-dev:amd64:有依赖问题,但是如您所愿,将继续卸载:
 libncurses5-dev:amd64 依赖于 libncurses-dev (= 6.1+20180210-4).

正在卸载 libncurses-dev:amd64 (6.1+20180210-4) ...
dpkg: 警告: 即将把 libncurses5-dev:amd64 从 6.1+20180210-4 降级到 5.9+20140118-1ubuntu1
(正在读取数据库 ... 系统当前共安装有 193369 个文件和目录。)
正准备解包 .../libncurses5-dev_5.9+20140118-1ubuntu1_amd64.deb  ...
正在将 libncurses5-dev:amd64 (5.9+20140118-1ubuntu1) 解包到 (6.1+20180210-4) 上 ...
正在选中未选择的软件包 libtinfo-dev:amd64。
正准备解包 .../libtinfo-dev_5.9+20140118-1ubuntu1_amd64.deb  ...
正在解包 libtinfo-dev:amd64 (5.9+20140118-1ubuntu1) ...
dpkg: 警告: 即将把 ncurses-bin 从 6.1+20180210-4 降级到 5.9+20140118-1ubuntu1
正准备解包 .../ncurses-bin_5.9+20140118-1ubuntu1_amd64.deb  ...
正在将 ncurses-bin (5.9+20140118-1ubuntu1) 解包到 (6.1+20180210-4) 上 ...
正在设置 ncurses-bin (5.9+20140118-1ubuntu1) ...
(正在读取数据库 ... 系统当前共安装有 193416 个文件和目录。)
正在卸载 libncursesw6:i386 (6.1+20180210-4) ...
dpkg: 警告: 即将把 lib32ncurses5 从 6.0+20170715-2 降级到 5.9+20140118-1ubuntu1
(正在读取数据库 ... 系统当前共安装有 193409 个文件和目录。)
正准备解包 .../lib32ncurses5_5.9+20140118-1ubuntu1_amd64.deb  ...
正在将 lib32ncurses5 (5.9+20140118-1ubuntu1) 解包到 (6.0+20170715-2) 上 ...
dpkg: 警告: 即将把 lib32tinfo5 从 6.0+20170715-2 降级到 5.9+20140118-1ubuntu1
正准备解包 .../lib32tinfo5_5.9+20140118-1ubuntu1_amd64.deb  ...
正在将 lib32tinfo5 (5.9+20140118-1ubuntu1) 解包到 (6.0+20170715-2) 上 ...
正在选中未选择的软件包 lib32tinfo-dev。
正准备解包 .../lib32tinfo-dev_5.9+20140118-1ubuntu1_amd64.deb  ...
正在解包 lib32tinfo-dev (5.9+20140118-1ubuntu1) ...
正在选中未选择的软件包 lib32ncurses5-dev。
正准备解包 .../lib32ncurses5-dev_5.9+20140118-1ubuntu1_amd64.deb  ...
正在解包 lib32ncurses5-dev (5.9+20140118-1ubuntu1) ...
正在设置 libncurses5:amd64 (5.9+20140118-1ubuntu1) ...
正在处理用于 lastore-daemon (0.9.66.3-1) 的触发器 ...
正在处理用于 mime-support (3.60) 的触发器 ...
正在处理用于 desktop-file-utils (0.23-3) 的触发器 ...
正在设置 libtinfo-dev:amd64 (5.9+20140118-1ubuntu1) ...
正在设置 lib32tinfo5 (5.9+20140118-1ubuntu1) ...
正在设置 lib32ncurses5 (5.9+20140118-1ubuntu1) ...
正在设置 libncurses5-dev:amd64 (5.9+20140118-1ubuntu1) ...
正在处理用于 bamfdaemon (0.5.3-2+b1) 的触发器 ...
Rebuilding /usr/share/applications/bamf-2.index...
正在处理用于 libc-bin (2.27-3) 的触发器 ...
正在处理用于 man-db (2.8.3-2) 的触发器 ...
正在设置 lib32tinfo-dev (5.9+20140118-1ubuntu1) ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
正在设置 libreadline6:amd64 (6.3-4ubuntu2) ...
正在设置 lib32ncurses5-dev (5.9+20140118-1ubuntu1) ...
                                 
当前状态:76946 (-9) new。

2.同步源码参考
https://mirrors.tuna.tsinghua.edu.cn/help/lineageOS/
https://wiki.lineageos.org/devices/dumpling/build

repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/lineageOS/LineageOS/android.git -b lineage-15.1
repo sync -c -f -j8 --force-sync --no-clone-bundle

清华镜像站这里做了限制当遇到failed请用-j1进行同步

repo sync -c -f -j1 --force-sync --no-clone-bundle

源码同步完毕

source build/envsetup.sh
breakfast dumpling

其他问题继续更新中…

错误1 高版本编译器问题

FAILED: /home/wenxiangli/android/los15/out/target/product/enchilada/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp 
/bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -o/home/wenxiangli/android/los15/out/target/product/enchilada/obj/STATIC_LIBRARIES/libedify_intermediates/lexer.cpp bootable/recovery/edify/lexer.ll"
flex-2.5.39: loadlocale.c:130:_nl_intern_locale_data: ?? 'cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' ???
Aborted
ninja: build stopped: subcommand failed.
16:25:42 ninja failed with: exit status 1
 export LC_ALL=C
 source build/envsetup.sh
 make -j32

错误2 这个跟问题一其实一样

prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[  0% 2/107167] bc: libclcore.bc <= frameworks/rs/driver/runtime/rs_element.c
FAILED: /home/wenxiangli/android/los16/out/target/product/enchilada/obj/RENDERSCRIPT_BITCODE/libclcore.bc_intermediates/rs_element.bc 

解决办法

1、确定有一个64位架构的内核
$ dpkg --print-architecture  
amd64
 
2、确认打开多架构支持功能
$ dpkg --print-foreign-architectures  
i386


如果不是i386的话,那么请打开多架构支持

步骤:
2.1)、$ sudo dpkg --add-architecture i386   
2.2)、$ sudo apt -get update  
 
3、检查拥有的库文件是否需要更新版本
$ sudo apt-get dist-upgrade  
 
4、执行下面语句安装:

$ sudo apt install lib32ncursesw5 lib32ncursesw5-dev  
sudo apt-get install lib32ncurses5
发布了53 篇原创文章 · 获赞 17 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq910689331/article/details/83622290