原始的error log:
1 ============================================ 2 PLATFORM_VERSION_CODENAME=REL 3 PLATFORM_VERSION=2.3.7 4 TARGET_PRODUCT=generic 5 TARGET_BUILD_VARIANT=eng 6 TARGET_SIMULATOR= 7 TARGET_BUILD_TYPE=release 8 TARGET_BUILD_APPS= 9 TARGET_ARCH=arm 10 HOST_ARCH=x86 11 HOST_OS=darwin 12 HOST_BUILD_TYPE=release 13 BUILD_ID=GWK74 14 ============================================ 15 find: frameworks/base/frameworks/base/docs/html: No such file or directory 16 find: out/target/common/docs/gen: No such file or directory 17 find: frameworks/base/frameworks/base/docs/html: No such file or directory 18 find: out/target/common/docs/gen: No such file or directory 19 find: frameworks/base/frameworks/base/docs/html: No such file or directory 20 find: out/target/common/docs/gen: No such file or directory 21 find: frameworks/base/frameworks/base/docs/html: No such file or directory 22 find: out/target/common/docs/gen: No such file or directory 23 find: frameworks/base/frameworks/base/docs/html: No such file or directory 24 find: out/target/common/docs/gen: No such file or directory 25 host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c 26 host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_cs.c 27 host C: libneo_util <= external/clearsilver/util/neo_files.c 28 host StaticLib: libhost (out/host/darwin-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a) 29 echo out/host/darwin-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o out/host/darwin-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o | xargs ar cqs out/host/darwin-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a 30 external/clearsilver/util/neo_files.c:219:12: error: expected expression 31 return nerr_raise(NERR_ASSERT, "Invalid call to ne_listdir_fmatch"); 32 ^ 33 external/clearsilver/util/neo_err.h:88:69: note: expanded from macro 34 'nerr_raise' 35 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 36 ^ 37 1 error generated. 38 host C: libneo_util <= external/clearsilver/util/ulist.c 39 make: *** [out/host/darwin-x86/obj/SHARED_LIBRARIES/libneo_util_intermediates/neo_files.o] Error 1 40 make: *** Waiting for unfinished jobs.... 41 external/clearsilver/java-jni/j_neo_util.c:257:12: error: expected expression 42 return nerr_raise(NERR_ASSERT, 43 ^ 44 external/clearsilver/java-jni/../util/neo_err.h:88:69: note: expanded from macro 45 'nerr_raise' 46 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 47 ^ 48 external/clearsilver/java-jni/j_neo_util.c:268:12: error: expected expression 49 return nerr_raise(NERR_ASSERT, 50 ^ 51 external/clearsilver/java-jni/../util/neo_err.h:88:69: note: expanded from macro 52 'nerr_raise' 53 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 54 ^ 55 2 errors generated. 56 make: *** [out/host/darwin-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/j_neo_util.o] Error 1 57 external/clearsilver/util/ulist.c:64:12: error: expected expression 58 return nerr_raise(NERR_NOMEM, "Unable to create ULIST: Out of memory"); 59 ^ 60 external/clearsilver/util/neo_err.h:88:69: note: expanded from macro 61 'nerr_raise' 62 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 63 ^ 64 external/clearsilver/util/ulist.c:70:12: error: expected expression 65 return nerr_raise(NERR_NOMEM, "Unable to create ULIST: Out of memory"); 66 ^ 67 external/clearsilver/util/neo_err.h:88:69: note: expanded from macro 68 'nerr_raise' 69 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 70 ^ 71 external/clearsilver/util/ulist.c:124:12: error: expected expression 72 return nerr_raise(NERR_OUTOFRANGE, "uListPop: empty list"); 73 ^ 74 external/clearsilver/util/neo_err.h:88:69: note: expanded from macro 75 'nerr_raise' 76 nerr_raisef(__PRETTY_FUNCTION__,__FILE__,__LINE__,e,f,__VA_ARGS__) 77 ^ 78 3 errors generated. 79 make: *** [out/host/darwin-x86/obj/SHARED_LIBRARIES/libneo_util_intermediates/ulist.o] Error 1
以“error: expected expression return nerr_raise(NERR_ASSERT,” 为keyword找到:
https://groups.google.com/forum/#!msg/android-building/Vhw56NONaAM/GLfo0yfnsB4J
这贴里面这位Josh老兄给出的解法:
The following should fix this:
1 $ sudo mv /usr/bin/cc /usr/bin/cc.bak 2 $ sudo mv /usr/bin/c++ /usr/bin/c++.bak 3 $ sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/cc 4 $ sudo ln -s /usr/bin/llvm-g++-4.2 /usr/bin/c++
哦,原来是OSX下默认的compiler指向的问题, AOSP要使用gcc和g++,而原始的link指向是:
cc->clang
c++->clang++
(Clang: http://en.wikipedia.org/wiki/Clang)
所以我们需要将之前的link断开, 设置为gcc和g++。
1 $ sudo rm /usr/bin/cc /usr/bin/c++ 2 $ sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/cc 3 $ sudo ln -s /usr/bin/llvm-g++-4.2 /usr/bin/c++
问题解决。