티스토리 뷰

2012.3.1 이전의 일들은... 생략.... 삽질의 연속이었습니다.
Mac에서 멋지게 해내겠다는 욕심에 계속 해서 시도했지만... 결국은 포기....
안드로이드를 빌드하기에는 우분투가 적격입니다.


2012.3.1 - 22시
http://forum.cyanogenmod.com/topic/34429-guide-compiling-building-cm71-in-mac-os-x-lion/
이 가이드를 따라서... 기존에 MacPorts를 이용하여 설치했던 패키지들을 전부 삭제하고 XCode 역시 삭제를 했다.
(개발환경 초기화)
그리고 다시 MacPorts를 설치 후 필요한 패키지를 재설치(위의 링크에 나와있는대로)
XCode 역시 4.2.1 버전을 구해서 재설치하였다.


2012.3.2 - 0시
다시 빌드 시작. 


2012.3.2 - 0시 30분
빌드를 끝냈는데 여전히 에러가 난다. 
근데 에러가 틀리다. 
원래는 libSDL.a에 의해서 에러가 났는데(아래 참조)
Undefined symbols:
  "__dyld_func_lookup", referenced from:
      _promoteLocalToGlobal in libSDL.a(SDL_dlcompat.o)
      _dlcompat_init_func in libSDL.a(SDL_dlcompat.o)
      _dlcompat_init_func in libSDL.a(SDL_dlcompat.o)
      _dlcompat_init_func in libSDL.a(SDL_dlcompat.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status 

이번엔 좀 다르다.
host C++: mksnapshot <= external/v8/src/codegen.cc
ld: illegal text-relocoation (direct reference) to (global,weak) DwarfCUImpl<Dwarf_CUHdr<Dwarf64_SizeHdr, unsigned long long>, unsigned long long>::get_pc_address_file_info(unsigned long long, Dwarf_AddressInfo*)in out/host/darwin-x86/obj/STATIC_LIBRARIES/emulator-elff_intermediates/emulator-elff.a(dwarf_cu.o) from DwarfCUImpl<Dwarf_CUHdr<Dwarf64_SizeHdr, unsigned long long>, unsigned long long>::get_pc_address_file_info(unsigned long long, Dwarf_AddressInfo*)in out/host/darwin-x86/obj/STATIC_LIBRARIES/emulator-elff_intermediates/emulator-elff.a(dwarf_cu.o) for architecture i386
collect2: ld returned 1 exit status
 
어떻게 해결해야하지?


2012.3.2 - 1시 30분
http://groups.google.com/group/android-building/browse_thread/thread/60a0c06924a94155 
이 곳에서 XCode 버전이 문제라는 내용을 찾았다.
XCode 3.2.4로 설치해서 잘 되었다는 내용이 있어서 XCode 3.2.4를 설치하기로 했다.


2012.3.2 - 2시
설치를 할 때 /Developer324에 XCode 3.2.4를 설치했다.
그리고 다시 빌드를 했는데 위에서 libSDL 에러가 난 것과 똑같은 에러가 난다.
설치할 때 옵션으로 유닉스 프로그램 설치를 함께 하는 것으로 체크했었는데 그게 문제인가 싶다.
어쨌든.... 다시 이전으로 돌아가기 위해서 XCode 3.2.4를 삭제하고 XCode 4.2.1을 다시 설치해야겠다.


2012.3.2 - 2시 30분
결국 다시 DwarfCUImpl 에러로 돌아왔다. 페이스북에 질문글 하나 남기고 자야겠다.


2012.3.2 - 7시
질문글 남긴 것에 댓글이 달렸다.
맥 OS 자체의 문제라고 한다.... 이럴수가....
32비트와 64비트 간의 간극으로 인해 링크를 할 때 에러가 난 것으로 추정된다고 한다.
이걸 고치려면 내가 직접 OS 부분을 수정한다던지 등의 조치를 취해야할 듯 하다.
이전에 우분투에다 환경 설정하고 빌드하려고 할 때 JDK 문제로 실패했던 것을 다시 고쳐서 빌드를 시도해봐야 겠다.


2012.3.2 - 8시
JDK의 문제가 OpenJDK도 설치하고 Sun-JDK도 설치했었기 때문에 나는 에러였다.
(java -version을 했을 때 OpenJDK와 SunJDK는 다르게 표시된다. OpenJDK는 OpenJDK라고 나온다.)
Sun-JDK를 사용하는 방법을 찾아서 Sun-JDK를 우선으로 활성화 시켰다.


2012.3.2 - 8시 30분
다시 빌드를 시도한다. 이전에 해놓은 빌드가 없기 때문에 꽤 오래 걸릴 것으로 예상된다.
make -j4
엔터.... 이젠 기다림이다.


2012.3.2 - 12시
사실 빌드하다가 중간에 잠들어서.... 이때 끝난 것이 확실한 것인지는 모르겠는데 화면을 보니 빌드가 끝나있었다.
꽤 긴 시간이 걸린 셈인데, 가상머신이라서 성능 등에 문제가 있었나보다.
에러가 없는건지 모르겠는데 Error 1 이 안 보이길래 다시 빌드를 해봤는데 기존에 에러가 날 때와 달리
더 긴 시간이 걸렸다. 한 5~10분 한듯?


2012.3.2 - 12시 30분
밥 먹고 와서 깨달았다. system.img가 없다는 것을....
대체 이유가 뭐지? 그리고 어떻게 검색해야할지 잘 모르겠다.
android build doesn't create system.img , android build don't create system.img 등으로 검색해봤는데 전혀 소용 없다....
해결책은 어디에?

2012.3.2 - 1시
~/.bashrc 에
#export LANG=c
       export PATH=/home/$USER/bin:$PATH
       export JAVA_HOME=/usr/lib/jvm/java-6-sun
이것을 넣고 다시 빌드를 시도해봐야겠다.


2012.3.2 - 22시
make: *** [out/target/common/docs/doc-comment-check-timestamp] 죽었음 이라는 에러로 인해... 왜 그런지 찾아봤는데 Android Build 그룹의 JBQ가 JDK bit 문제라고 한다. 나는 우분투 32비트에서 작업하고 있었고....
이전까지의 경험으로 인해, 딴 방법 찾고 삽질하느니 그냥 다시 64비트 깔고 시도하는게 더 낫다는 것을 알게 됬다.
지금 다시 64비트 설치하고 환경 다시 설정하고 소스 다운 받은 뒤 빌드 해봐야겠다.
참고로 난 에러를 메모한다.
Install: out/target/product/generic/system/framework/services.odex
target Dex: android.core.tests.libcore.package.com.no-core-tests-res
target Dex: android.core.tests.libcore.package.dalvik.no-core-tests-res
target Dex: android.core.tests.libcore.package.libcore.no-core-tests-res
/bin/bash: line 17: 10738 죽었음               javadoc \@out/target/common/obj/JAVA_LIBRARIES/doc-comment-check_intermediates/droiddoc-src-list -J-Xmx1280m -quiet -doclet com.google.doclava.Doclava -docletpath out/host/linux-x86/framework/jsilver.jar:out/host/linux-x86/framework/doclava.jar -templatedir build/tools/droiddoc/templates-sdk -htmldir frameworks/base/docs/html -bootclasspath /usr/lib/jvm/java-6-sun/lib/../jre/lib/rt.jar -classpath out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar -sourcepath frameworks/base/core/java:frameworks/base/graphics/java:frameworks/base/location/java:frameworks/base/media/java:frameworks/base/drm/java:frameworks/base/opengl/java:frameworks/base/sax/java:frameworks/base/telephony/java:frameworks/base/wifi/java:frameworks/base/keystore/java:frameworks/base/icu4j/java:frameworks/base/voip/java:out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/core_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/ext_intermediates/classes.jar:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jar -d out/target/common/docs/doc-comment-check -hdf page.build ITL41D-eng.growingdever.20120302.130624 -hdf page.now "02  3월 2012 13:06" -knowntags ./frameworks/base/docs/knowntags.txt -since ./frameworks/base/api/1.xml 1 -since ./frameworks/base/api/2.xml 2 -since ./frameworks/base/api/3.xml 3 -since ./frameworks/base/api/4.xml 4 -since ./frameworks/base/api/5.xml 5 -since ./frameworks/base/api/6.xml 6 -since ./frameworks/base/api/7.xml 7 -since ./frameworks/base/api/8.xml 8 -since ./frameworks/base/api/9.xml 9 -since ./frameworks/base/api/10.xml 10 -since ./frameworks/base/api/11.xml 11 -since ./frameworks/base/api/12.xml 12 -since ./frameworks/base/api/13.xml 13 -since ./frameworks/base/api/14.txt 14 -werror -hide 113 -overview frameworks/base/core/java/overview.html -hdf sdk.version 4.0 -hdf sdk.rel.id 1 -hdf sdk.preview 0 -parsecomments
make: *** [out/target/common/docs/doc-comment-check-timestamp] 죽었음
make: *** 끝나지 않은 작업을 기다리고 있습니다....
make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.com.no-core-tests-res_intermediates/noproguard.classes-with-local.dex] 죽었음
make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.dalvik.no-core-tests-res_intermediates/noproguard.classes-with-local.dex] 죽었음


2012.3.2 - 23시
우분투 32비트라서 나는 에러라는 이야기를 찾았다.
결국 다시 밀고 우분투 64비트로 설치하기로 결정.
우분투 홈페이지에서 amd64로 다운 받아서 설치할 것이다.


2012.3.3 - 12시
우분투 64비트 설치를 끝내고 JDK를 설치해야하는데 구글홈페이지에서 나오는 방법으론 안된다.
그렇다고 OpenJDK를 설치해도 안되는데(반드시 SunJava여야 한다.)
다들 apt repository를 이상한 곳을 추가하는 것으로 해놔서 이전에 바른 방법을 찾아서 설치하는 법을
소개하는 곳을 찾을 수가 없었다.
힘들게 찾았는데 그 주소를 공유해야겠다. - http://crazia.tistory.com/773
그리고 64비트에 맞게 작업환경을 구성했다. - http://source.android.com/source/initializing.html
이제 다시 make 돌리고 자야겠다!


2012.3.3 - 8시 30분
일어났는데 .img들이 생성이 안되어 있다. 내가 무슨 잘못을 한거지?
AOSP 페이지 말고 다른 곳에서의 가이드대로 추가 설정을 하고 다시 make 해봐야겠다.


2012.3.3 - 12시
메모리 부족으로 VMWare가 죽었다.... 다시 빌드 해야된다....


2012.3.3 - 15시
이번엔 맥북의 하드 용량 부족이다... 정리할 것 정리하고 다시 빌드 해야겠다.


2012.3.3 - 19시
Generated: (out/target/product/generic/android-info.txt)
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
드디어 성공이다!! system.img, ramdisk.img, userdate.img 모두 생성되었다!!!!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday