编译问题汇总
来自个人维基
linux driver
/*error*/ include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined /*solution*/ bounds.h是在编译内核时生成的,如果运行"make clean" 或 "make distclean",这个文件就会被清除掉(详情查看内核Makefile)。 因此,如果再利用此内核源码编译内核模块,如果有涉及bounds.h,就会出现找不到该文件的错误。 解决办法就是: "make prepare" 这样就会重新生成bounds.h
/*error*/ target Java: FrameworksCoreSystemPropertiesTests (out/target/common/obj/APPS/FrameworksCoreSystemPropertiesTests_intermediates/classes) error: error reading out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/javalib.jar; invalid header field 1 error make: *** [out/target/common/obj/APPS/FrameworksCoreSystemPropertiesTests_intermediates/classes-full-debug.jar] Error 41 /*solution*/ 原因是jar打包工具打包的格式不正确导致的,具体修改如下: $ sudo update-alternatives --config jar 有 3 个候选项可用于替换 jar (提供 /usr/bin/jar)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/bin/fastjar 100 自动模式 1 /usr/bin/fastjar 100 手动模式 2 /usr/lib/jvm/java-1.5.0-sun/bin/jar 53 手动模式 3 /usr/lib/jvm/java-6-sun/bin/jar 63 手动模式 要维持当前值[*]请按回车键,或者键入选择的编号: 此时选择3,注意这个选择需要和你的sudo update-alternatives --config java 里面选择的保持 一致(如果你是sun的jdk就选sun,如果是openjdk就选openjdk的打包jar),负责会出现打包错误, 导致无法编译通过的问题。(默认使用的是fastjar,出现问题)