各种编译错误
rockly89
这个作者很懒,什么都没留下…
展开
-
terminate called after throwing an instance of 'std::length_error
主要原因:对一个空指针进行操作。 例如:char* p = NULL:string str(p); //运行时报错 FILE* install_log = fopen_path(install_file, "w"); if (install_log) { fputs(path, ins原创 2016-12-22 17:16:05 · 12605 阅读 · 0 评论 -
undefined reference to `SHA1'
编译用到sha加密函数库, g++ -o test test.cpp -std=c++11 -lssl在linux下编译会报错:test.cpp:(.text+0x736): undefined reference to `SHA1_Init'test.cpp:(.text+0x80f): undefined reference to `SHA1_Update'test.c原创 2017-06-22 11:11:59 · 5257 阅读 · 0 评论 -
BUILD_FINGERPRINT cannot contain spaces
build/core/Makefile:160: *** BUILD_FINGERPRINT cannot contain spaces: "Android/aosp_arm/generic:7.1.1/NMF26F/eng.xxx.20170701.150615 :eng/test-keys".解决方法build/core/Makefile:# The string us原创 2017-07-01 15:14:28 · 2407 阅读 · 0 评论 -
下载android代码出现error: unable to create file tests/P_str_escape/str\\escape.rs
error: unable to create file tests/P_str_escape/str\\escape.rs: No such file or directory File "/home/linyang/aosp_L/.repo/repo/project.py", line 2486, in _InitWorkTree raise GitError("cannot原创 2017-06-21 10:28:58 · 1867 阅读 · 0 评论 -
文件名有控制导致的编译失败
releasetools/common.py:1091: UserWarning: Duplicate name: filename(这个文件名包含空格)原创 2017-06-20 14:20:56 · 740 阅读 · 0 评论 -
在64位linux下编译32位程序
-m32来使得gcc编译32位程序(在x86_64系统上),使用-m elf_i386参数可以使得64位的ld能够兼容32位的库gcc -m32ld -m elf_i386ld用-V选项可以查看支持的平台原创 2017-04-12 15:03:16 · 2697 阅读 · 0 评论 -
android编译报错:error: ro.build.fingerprint cannot exceed 91 bytes
http://stackoverflow.com/questions/28776970/android-build-error-ro-build-fingerprint-cannot-exceed-91-bytesEdit build/tools/post_process_props.py. Change lines as follows:PROP_NAME_MAX原创 2017-01-20 00:29:05 · 3808 阅读 · 0 评论 -
a label can only be part of a statement and a declaration is not a statement
在写代码的时候,变量的声明不应该出现在label之后,比如switch语句中的case结构也可能会遇到类似的问题。PS:从一个#if…#endif宏块goto到宏块以外,会有一个编译告警。在case下面定义了变量,并给它赋了初值,当把定义和赋值分开就好了,或者是加上大括号。The language standard simply doesn'原创 2017-01-17 19:04:56 · 511 阅读 · 0 评论 -
快速重建system.img
修改android的系统模块后, 需要重新生成system.img, 以前我用make systemimage,但这个过程太慢了,很烦人。于是通过make输出的信息, 找到一个比较快的方法,只编译模块和生成system.img,省去其它过程,重新生成system.img快了不少。以修改services模块为例,命令如下:cd frameworks/base/servicesmm转载 2016-12-14 09:21:59 · 407 阅读 · 0 评论 -
android系统编译对jdk和make的版本要求
根据官网的资料Java Development Kit (JDK)Please note, since there are no available supported OpenJDK 8 packages for Ubuntu 14.04, the Ubuntu 15.04 packages must be installed manually. See JDK for Ubun原创 2016-11-18 20:46:59 · 3571 阅读 · 0 评论 -
objdump与readelf的区别
objdump objdump是以一种可阅读的格式让你更多地了解二进制文件带有的信息的工具。objdump借助BFD,更加通用一些, 可以应付不同文件格式,它提供反汇编的功能。 由于本项目中所要解析的是在ARM平台下可执行的ELF文件,gcc自带的objdump工具不支持arm平台下的编译文件。因此需要构建linux下交叉编译环境,在基于ARM的嵌入式系统开发中,常常用到交叉编译的GCC工具链原创 2016-11-30 18:07:27 · 3953 阅读 · 0 评论 -
llocating an object of abstract class type "xxxx"
通常是该类,有未实现的虚函数,需要实现。或者是父类里的虚函数子类没有实现造成的原创 2016-10-17 13:48:11 · 386 阅读 · 0 评论 -
Suppress -Wtautological-compare warning
https://stackoverflow.com/questions/15864461/suppress-wtautological-compare-warningYou can disable it for the entire file by adding -Wno-tautological-compare to the Clang command line (a原创 2017-09-30 14:24:14 · 1395 阅读 · 2 评论