首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于SnapDragonBoard410c源码编译问题
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于SnapDragonBoard410c源码编译问题
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-1-24 18:53
|
只看该作者
基于SnapDragonBoard410c源码编译问题
当我们从高通的网站上面拉取最新的410c代码时我们可能会遇到以下几种问题我总结了下分为以下集中问题主要的问题是由于ubuntu 系统和内存导致,代码无法通过编译。
一.clang: error: linker command failed with exit code
解决方法一般是将art/build/Android.common_build.mk文件ifneq ($(WITHOUT_HOST_CLANG),true)改为ifeq ($(WITHOUT_HOST_CLANG),false)
1
二.编译L时回报错:recipe commences before first targe
gnu make 3.8.1是为android编译修改过或者是优化过的, 所以新版本的ubuntu上用的是更高版本的gnu make , 所以导致在编译时出问题。
1
三.出现AssertionError错误
解决办法如下:
export JACK_JAR=./out/host/linux-x86/framework/jack.jar./out/host/linux/x86/bin/jack-admin stop-server./out/host/linux/x86/bin/jack-admin start-server
1
2
3
4
5
四.针对android 选择user版本进行编译的时候,会出现proguard错误,我们需要知道的事情
1.proguard是做什么的,他的作用是将java代码进行混淆的工具
2.因为proguard是混淆工具,所以android的mk文件也对其支持为两种方式:
1.指定不需要混淆的native方法与变量的proguard.flags文件
如:LOCAL_PROGUARD_FLAG_FILES := proguard.flags
2.制定编译的工程,不要使用代码混淆的工具进行代码混淆
如:LOCAL_PROGUARD_ENABLED := disabled
3.不设置,默认使用LOCAL_PROGUARD_ENABLED := full.即将该工程代码全部混淆
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在Android项目中用到JNI,当用了proguard后,发现native方法找不到很多变量,原来是被produard优化掉了。所以,在JNI应用中该慎用progurad啊。
解决办法:
1、在Android.mk中加入一行:
LOCAL_PROGUARD_FLAGS := -include $(LOCAL_PATH)/proguard.flags
2、创建proguard.flag文件,里面写入不需要proguard优化的类和方法。例如:
-keep class oms.miracle.mobiletv.broadcast.ServiceContext {
*;
}
五.frameworks/policies/base/PolicyConfig.mk:22:
*
No module defined for the given PRODUCT_POLICY (android.policy_phone). Stop.
在build/tools/findleaves.sh中的第89行, 这一句find "${@:0
nargs}" $findargs -type f -name "$filename" -print | 改为find "${@:1
nargs-1}" $findargs -type f -name "$filename" -print |
1
2
3
4
5
六..frameworks/base/tools/aidl/AST.cpp:10: error: ‘fprintf’ was not declared in this scope的错误
下载gcc-4.3和g++-4.3 apt-get install gcc-4.3 g++-4.3 因为ubuntu 9.10自带到是gcc 4.4,因此需要重新下载gcc 4.3,最后设置gcc软连接到gcc 4.3 进入/usr/bin cd /usr/bin 建个软连接 ln -s gcc-4.3 gcc ln -s g++-4.3 g++ 然后进入android目录下,执行make,就可以了。 主线代码则没有此问题 7.在模拟器上运行编译好的android 编译好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img则在~/android/out/target/product /generic下$ cd ~/android/out/host/linux-x86/bin增加环境变量$ emacs ~/.bashrc在.bashrc中新增环境变量,如下#java 程序开发/运行的一些环境变量export ANDROID_PRODUCT_OUT=~/android/out/target/product/g enericANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x 86/binexport PATH=${PATH}
{ANDROID_PRODUCT_OUT_BIN}
{ANDROID_ PRODUCT_OUT};最后,同步这些变化:$ source ~/.bashrc$ cd ~/android/out/target/product/generic $ emulator -system system.img -data userdata.img -ramdisk ramdisk.img
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
模拟电路
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议