'전체보기'에 해당되는 글 9건

  1. [이전] 블로그 이전
  2. [cocos2d-x] 2.Start
  3. [cocos2d-x] 목차
  4. [cocos2d-x] 1.Install & Setting
  5. [Linux] Android Studio 실행 오류 2
  6. [Mac] 맥에서 종료/재부팅 안되는 현상
  7. [.vimrc] 1.Vundle설치 및 사용
  8. [Direct3D] Matrices 예제 LINK2019 Error
  9. [Direct3D] DivecCreate LNK2019, LNK1120, C2440, C2664 Error 해결법

[이전] 블로그 이전

블로그를 Github Page로 이전 합니다!

어짜피 글을 안쓰는 블로그 였긴 하지만......ㅠㅠ

 

Markdown을 지원하고 제가 요리조리 건들여 볼 수 있는 것 중 무료 호스팅을 할 수 있는 가장 만만한 것으로 선택하여 이전합니다~

Github의 Github Page기능을 이용하여 호스팅을 하고, static site generator로 Jekyll를 사용하는 방향으로 이전하려 합니다 :)

 

주소는 기존에 사용중이던 http://blog.skyserv.kr

Github Page 주소인 http://jhkang.github.io 로 접속이 가능하며,

 

Tistory는 http://skyserv.tistory.com 으로 계속 접속이 가능합니다

 

 

(이전하니... 글을 쓰긴해야할텐데... 과연 쓸지는 모르겠군요...ㅋㅋ)

 

수정.

Tistory blog는 그대로 http://blog.skyserv.kr 로 접근이 가능합니다.

새로운 블로그는 https://blog.harrydev.io 로 변경되었습니다.

 

 

 

[cocos2d-x] 2.Start

2.Cocos2D-X Start

지난 시간에는 Cocos2D-X의 설치와 프로젝트 생성에 대해서 알아보았다…
너무 어렵고 복잡하게 설명한게 아닌가 걱정도 되지만….@_@;;; 일단 그대로 진행하겠다.




프로젝트가 생성되고나면 그 다음부터는 아주 간단하다.
그냥 프로젝트를 불러오고 빌드만 해주면 끝!!



하지만, 지난번에 빠진 내용이 있어서 추가해보도록 하겠다.
지난번에 수정한 create_project.py를 가지고 프로젝트를 생성하면 IOS는 바로 빌드가 되지만, Android는 이런저런 설정을 추가로 잡아줘야 빌드가 가능하다… OTL…


뭔가 이런느낌.....언제 끝나....지..?


역시 그때그때 설정을 잡는것보다 한번에 끝내버리자….
지난번에 수정했던 create_project.py를 열고 144번째 줄에 다음과 같이 스크립트 코드를 추가하자.


    src = “.classpath”
    if (os.path.exists(proj_path + src) == True):
       replaceString(proj_path + src, “classpath”,
         """ <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES">
             <classpathentry kind="src" path="cocos2dx-src">
         """)

    src = ".cproject"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "${ProjDirPath}/../../..", os.environ['COCOS2DX_ROOT'])
        replaceString(proj_path + src, context["src_project_name"], context["dst_project_name"])

    src = ".project"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "COCOS2DX/projects/" + context["src_project_name"] + "/Classes", "$%7BPARENT-1-PROJECT_LOC%7D/Classes")
        replaceString(proj_path + src, "</linkedResources>", 
            """ <link>
                    <name>cocos2dx-src</name>
                    <type>2</type>
                    <location>/Users/jhkang/sdks/cocos2d-x-2.2.0/cocos2dx/platform/android/java/src</location>
                </link> 
                <link>
                    <name>Resources</name>
                    <type>2</type>
                    <location>$%7BPARENT-1-PROJECT_LOC%7D/Resources</location>
                </link> 
            </linkedResources>""")
        replaceString(proj_path + src, "COCOS2DX/cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")
        replaceString(proj_path + src, "COCOS2DX/extensions", os.environ['COCOS2DX_ROOT'] + "/external")
        replaceString(proj_path + src, "COCOS2DX/scripting", os.environ['COCOS2DX_ROOT'] + "/scripting")

    src = "project.properties"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "../../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")

    os.mkdir(proj_path + '.settings')
    setting_f = file(proj_path + '.settings/org.eclipse.cdt.core.prefs', 'a+')
    setting_f.write("""
        eclipse.preferences.version=1
        environment/project/0.756827735/COCOS2DX_ROOT/delimiter=\:
        environment/project/0.756827735/COCOS2DX_ROOT/operation=append
        environment/project/0.756827735/COCOS2DX_ROOT/value=""" + os.environ['COCOS2DX_ROOT'] + 
        """
        environment/project/0.756827735/NDK_ROOT/delimiter=\:
        environment/project/0.756827735/NDK_ROOT/operation=append
        environment/project/0.756827735/NDK_ROOT/value=""" + os.environ['NDK_ROOT'] +
        """
        environment/project/0.756827735/append=true
        environment/project/0.756827735/appendContributed=true
        """)
    setting_f.close()

144번째줄 추가



스크립트에 대해서 약간 설명을 하자면…


.classpath


안드로이드 빌드시 dependency를 설정하는 부분이다.

이걸 따로 설정 안해줄시 cocos2dx의 java소스파일을 링크해주어야 한다.
하지만 이것만 해줄시 파일위치를 찾지못하므로 아래 .project내용이 있어야 한다.


.cproject


이클립스 C/C++의 프로젝트 설정파일이다.
cocos2d-x의 root위치와 프로젝트 이름을 생성하는 프로젝트 이름으로 변경해준다.


.project


이클립스 프로젝트 설정파일이다.
COCOS2DX로 되어있는 부분을 전부 cocos2d-x의 root위치로 변경해준다.
이렇게 설정하면 이클립스에서 package explorer에서 해당하는 소스들이 링크되어 확인이 가능하다.


package explorer


또한 .classpath에 설정한 cocos2dx-src도 링크로 추가하여주고, Resources파일도 추가하여준다.
Classes는 추가되어 있으면서 Resources는 왜 빠져있는지 모르겠다…. =_=;;;



.project.properties


cocos2dx의 java소스위치로 연결해주는 부분이다. cocos2d-x의 root로 위치변경해준다.



.settings 


이 부분은 없는 파일을 만들어 넣는 부분이다.
해당 내용은 C/C++빌드시에 사용할 환경변수를 지정해주는 부분이다.
NDK_ROOT와 COCOS2DX_ROOT를 등록하여준다.
(COCOS2DX_ROOT인 경우는 원래 안해도 되었으나 앞 강좌에서 build_native.sh를 수정할때 COCOS2DX_ROOT부분을 주석처리 하여 빌드시 위치를 찾지못하므로 등록해주어야 한다.)



+추가로 이전 강좌에서 IOS스크립트 추가내용

  지난 시간에 수정했던 부분 


이 부분역시 Xcode프로젝트 파일에서 cocos2dx의 위치를 잡아주는것이다.




이것으로 path설정하는부분은 끝이났다…
(기본 위치로 쓰면 간단히 생성만 하면되지만…. 원하는 위치에 프로젝트를 생성하려니 참 복잡하다….=ㅁ=;; )

귀찮은 사람들은…. 파일을 올려두니 그냥 받아서 쓰자 =_=;;


create_project.py






필자는 굳이 따라하라고는 안했다......ㅌㅌㅌ






Android 개발 준비

프로젝트를 생성하기전에 Android개발을 위해 안드로이드 SDK와 NDK와 ADT를 설치하자.
SDK와 ADT(Eclipse)는 ADT를 설치하면 같이 설치가 된다.


안드로이드 개발자 사이트에서 ADT를 받아보자. 


ADT Download


ADT Download 동의


다운받은 Zip파일의 압축을 풀면 ADT(eclipse)와 SDK가 있다.


ADT 와 SDK


ADT와 같이 안드로이드 개발자 사이트에서 NDK를 받아보자.



NDK Download 동의


필자는 r9버전을 설치했다.(r9부터 toolchain다운로드가 생겼는데 따로 설치 안해도 된다.)


전부 다운을 받고 원하는 위치에 압축을 풀었으면 환경변수를 잡아줘야 한다. 

환경변수




이제 ADT를 실행해보자.

ADT 실행


먼저 시작하기전에 안드로이드 sdk들을 설치해야 한다. sdk manager를 실행한다.

SDK Manager 실행

 

실행하면 Build를 위한 tool과(이미 설치되어있을것이다.) SDK를 설치해준다.
(최소버전을 2.2버전부터 지원할것이므로 2.2를 선택하여 설치하고 에뮬레이터를 실행하기 위하여 4.2.2버전도 설치한다.)


tool과 sdk를 설치한다




설정이 끝났으면 프로젝트를 생성해 보겠다.





프로젝트 생성

지난번 생성했던 프로젝트를 제거하고 다시 프로젝트를 생성한다. 


프로젝트 생성!


ps. 참고로 create_project.py가 있는 폴더는 다른곳으로 이동해도 정상적으로 동작한다.
단, 안에 있는 json파일도 같이 있어야 한다.





Android 프로젝트 열기 & 빌드

생성된 프로젝트를 ADT에서 연다.

File->New->Other


Android Project From Existing Code


Directory 지정


Import 완료



프로젝트가 정상적으로 열렸으면



빌드를 해보자. 


Run을 누르거나 옆에 재생표시 처럼되있는 버튼을 누른다.


빌드를 하면 콘솔창이 뜰수도 있고 아무런 변화가 없을수도 있다… 당황하지 말자… 빌드중인거다… 


아무 변화가 없다고 당황하지 말자... 열심히 빌드중이다... 


열심히 빌드중...



빌드가 완료되면 아래와 같이 실행할 Device를 선택할수 있는 창이 뜨거나 에뮬레이터가 실행되거나 컴퓨터에 연결한 안드로이드 기기에 실행이 될것이다.


Device 선택


만일 안드로이드 기기도 없고 에뮬레이터도 만든적이 없다면 에뮬레이터를 하나 만들자.
(왠만하면 기기를 사도록 하자 =_=;;; 에뮬레이터로 개발하다가 모니터를 부술지도 모른다.)



에뮬레이터는 Device선택창에서 2번째 항목을 선택후 오른쪽하단에 Manager버튼을 클릭하거나 Window->Android Virtual Device Manager를 선택한다.


Window->Android Virtual Device Manager


Android Virtual Device Manager



새로 만들어야 하므로 New를 눌러서 아래와 같이 생성해준다.
버전은 4.2.2로 해주고 Use Host GPU를 반드시 활성화 해준다.
Use Host GPU를 활성화 해야만 GL 2.0을 사용할수 있다.=ㅁ=;;
(이상하게 낮은 안드로이드 버전에서는 실행시 GLThread에서 애러가 난다 =_=;;)

Device 생성


생성했으면 AVD Manager창을 닫고 Device 선택창으로 돌아온뒤 방금 생성한 AVD를 실행해준다.


AVD 실행


AVD


AVD가 정상적으로 실행이 됬다면 Device선택창에서 선택후 실행해준다.


Select Target

Android Run!


위 처럼 나온다면 안드로이드 개발 준비가 완료된것이다.



이제 IOS개발 준비를 해보겠다.





IOS 프로젝트 열기 & 빌드

Xcode실행


IOS프로젝트 이므로….XCode를 실행해준다…..
(이…쁘다 XCode +_+)


프로젝트 불러오기


생성된 프로젝트를 불러온다.


프로젝트 빌드 타겟 설정


프로젝트 빌드 타겟을 설정해준다.
(cocos2dx의 소스도 같이 있어서 그런지 cocos2dx로 기본설정이 되어있다…. =_=;;;)


빌드!


왼쪽 상단에 재생버튼 처럼 생긴놈을 클릭하면 빌드/실행이 된다!

run


빌드가 완료되면 시뮬레이터가 실행되고 뒤집힌 Cocos2D-X이미지가 뜨고 위와 같이 실행된화면이 뜬다.


빌드가 잘되고 실행이 된다면 IOS 개발할 준비가 완료된것이다.





이제 개발을 위한 기본준비는 끝이 났고 다음시간부터 본격적으로 개발을 시작해보겠다.
그전에 Android/IOS 두가지의 플랫폼, 서로다른 개발툴을 쓰고있다. 하지만 소스는 하나로 공유하고 있다. 

XCode에서 보이는 Classes, Resources 그리고 ADT(Eclipse)에서 보이는 Classes, Resources가 서로 공유되는 파일들이다.

각각 프로젝트 폴더의 상위 폴더에 존재한다.


XCode Explorer


ADT Explorer


실제 파일



앞으로 개발시에는 공통으로 사용하는 Classes, Resources에서 작업을 하게될것이다.





개발을 하면서 천천히 정리하면서 쓰는것이라 다음이 언제가 될지는……….

하... 안드로이드 에뮬이 잘 안되서 오래걸렸다.....

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 목차  (0) 2013.09.29
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29

[cocos2d-x] 목차

시간 날때 짬짬히 정리해서 올립니다.

[cocos2d-x] 1.Install & Setting

[cocos2d-x] 2.Start



많은분에게 도움이 되면 좋겠네요...:)

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29

[cocos2d-x] 1.Install & Setting

1.Cocos2D-X Install & Setting

모바일 2D게임을 만들때 많이 쓰이고 있는(?) Cocos2D-X…
요즘 이것저것 건들여 본다고 시작하게되어… 정리겸 혹시나 다른분들께 도움이 될까 끄적여 본다.


Windows의 경우에는 간단히 CocoStudio를 제공하고 있어 해당 IDE를 설치하여 이용하여도 되지만 필자가 Macbook Air에서 주로 작업하여 직접 SDK를 설치하고 셋팅하여야 한다.


SDK설치와 셋팅이 의외로 설치방법이 IOS는 간단한데…. Android는 수정해야할게 좀 있다…
검색을 해도 최신버전의 설치방법은 한글로 된 문서가 잘 안보이는거 같다…….
(검색능력이 떨어져서 못찾는건가….)



ps.본 글은 AndroidIOS의 설정방법만 설명하니… 그 외의 플랫폼은 다른곳에서 찾아주….세요…

Cocos2D-X Download

Cocos2D-X홈페이지에 들어가서 오른쪽에 있는 Stable버전을 다운받는다.
(이 글을 쓰고있는 현재 최신 Stable버전은 2.2.0버전이다.)
설치후 압축을 풀고 원하는 위치로 이동해 놓도록 하자.(ex. /Users/name/sdks/cocos2d-x)

  • 필자의 경우에는 /Users/name/sdks/cocos2d-x–2.2.0으로 압축을 풀고 /Users/name/sdks/cocos2d-x로 Symbolic Link를 걸어뒀다.


Project 설정

Cocos2d-x 2.2.0부터 XCode설정 스크립트가 안보인다....
이전에는 IOS의 경우에는 Project Template을 XCode에 설치하는 스크립트가 제공되어 XCode에 Template을 설치했었다.
또한 내 기억으로는... Android 셋팅의 경우에는 몇몇 스크립트의 수정이 필요했으나 2.2.0버전부터 수정이 필요없게 되었다.
(단, 프로젝트 폴더의 생성위치를 변경하고 싶다면 약간의 수정이 필요하다.)


이전 버전에는 XCode설치 스크립트가 제공되었다... (install_cocos2dx_xcode.sh)

프로젝트 폴더의 위치를 변경하기 위해서는 먼저 Path설정과 파일을 몇가지….. 수정해 줘야 한다.
(아래 과정이 귀찮다면… 그냥 기본적으로 잡아주는대로 쓰자…)



수정할게 좀 있...으므로.... 포기하면 편해요....




마음의 준비가 됬다면 시작해보자....

  1. OS의 환경변수를 잡아준다.
    1. COCOS2DX_ROOT : Cocos2D-X SDK의 위치를 잡아주면 된다.
    2. COCOS2DX_PROJECT_DIR : Cocos2D-X의 프로젝트 폴더를 생성할 위치를 잡아준다.
      (ex. $HOME/work/cocos2dx) 

      환경변수

  2. tools/project-creator/create_project.py 파일을 수정해준다.
    1. 52번째 줄의 context[“dst_project_path”]의 값을 os.environ[‘COCOS2DX_PROJECT_DIR’] + ‘/’ + context[“dst_project_name”]로 변경한다.
      (context[“dst_project_path”] = os.environ[‘COCOS2DX_PROJECT_DIR’] + ‘/’ + context[“dst_project_name”])

      52번째줄 수정

    2. 75~105번째 줄에서 context[“src_project_path”]로 되어있는 변수들의 값을 os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-*”와 같이 변경한다.
      (os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-cpp”,
      os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-lua”,
      os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-js” )

      75~105번째줄 수정

  3. 각 플랫폼 별 tmplate을 수정해준다.
    1. Android
      1. template/multi-platform-cpp/proj.android/build_native.sh 파일을 수정해준다.
        1. 40번째 줄의 다음 내용을 주석처리 또는 지워준다. (COCOS2DX_ROOT=“$DIR/../../..”)

          40번째 줄 주석

    2. IOS
      1. template/multi-platform-cpp/proj.ios/HelloCpp.xcodeproj/project.pbxproj 파일을 수정해준다.
        1. 2067, 2116번째 줄의 HEADER_SEARCH_PATHS안에 $(SRCROOT)/../../../external/libwebsockets/ios/include를 추가해준다.

          2067번째 줄 추가

          2116번째 줄 추가

      2. tools/project-creator/create_project.py 파일을 수정해준다.
        1. 141번째줄 (if (platform == “android”)문 다음)에 아래의 코드를 넣어준다.
if (platform == "ios"):
    src = context["src_project_name"] + ".xcodeproj/project.pbxproj"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "$(SRCROOT)/../../..", os.environ['COCOS2DX_ROOT'])
        replaceString(proj_path + src, "../../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")
        replaceString(proj_path + src, "../../../external", os.environ['COCOS2DX_ROOT'] + "/external")
        replaceString(proj_path + src, "../../../extensions", os.environ['COCOS2DX_ROOT'] + "/extensions")
        replaceString(proj_path + src, "../../../CocosDenshion", os.environ['COCOS2DX_ROOT'] + "/CocosDenshion")
        replaceString(proj_path + src, "../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")


141번째 줄 추가

이로써 기본적으로 프로젝트를 생성할 준비는 끝이 났다.


이걸 따라했다면...


Project 생성

프로젝트 생성은 아주 간단하다.
설정에서 수정했던 tools/project-creator/create_project.py를 아래와 같이 실행하기만 하면 자동으로 프로젝트를 생성해준다.

  • tools/project-creator/create_project.py -project [project명] -package [package] -language cpp 
    ex) tools/project-creator/create_project.py -project test -package test.test.test -language cpp


project 생성

생성된 project


만약 위에서 프로젝트 폴더 위치를 변경했다면 해당 위치에, 변경과정을 안거쳤다면 projects/ 안에 프로젝트 폴더가 생성되어있을것이다.
(projects/안에 생성되어있다면 해당 프로젝트를 다른곳으로 이동시 상대경로가 변경되어 빌드가 안될것이다…)


IOS인 경우는 XCode로 해당 proj.ios를 불러오면 되고, Android의 경우에는 Eclipse로 proj.android를 불러오면 된다.
Cocos2D-X의 코드는 Classes에 리소스는 Resources에 위치해 있다.


End…

이것으로 Cocos2D-X의 사용을 위한 프로젝트 생성을 위한 설정은 끝이났다.

다음 포스팅은 생성한 프로젝트를 실행해보도록 하겠다.
(언제 될지 모르겠지만…. 최대한 빨리 써보도록……)



ps. 필자처럼 복잡하게 살지말고… 간단하게 기본위치에 생성하는것을 적극 추천한다..=_=;;;



Next: [cocos2d-x] 2.Start


'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 목차  (0) 2013.09.29

이번 Google I/O 2013에서 Android Studio가 공개되었다.


밤새 보고.... 회사에 와서 설치를 하였는데......음?!?!

실행이 안된다.....=_=;;



그렇다 본인은... 회사에서 Ubuntu 12.04 LTS에서 안드로이드 개발을 하고있다............


으아니... 실행이 안된다니....;ㅁ;



...........



하.....

검색해봐도 Stackoverflow에 올라온 아래 2개밖에........심지어 당시에는 답변도 없고....;ㅁ;

http://stackoverflow.com/questions/16578810/android-studio-installation-on-ubuntu-12-04-fails-to-initialize

http://stackoverflow.com/questions/16576355/plugin-com-intellij-failed-to-initialize-and-will-be-disabled-null


JAVA_HOME도 잘 설정되어 

$echo $JAVA_HOME

/usr/local/etc/dev/jdk

잘 나온다.......=_=;;;


퇴근후 검색해본결과......... 

https://code.google.com/p/android/issues/detail?id=55359


위와 같은글이..........

아.... 버그다..


왜 인지는 모르겠으나.... 댓글을 보면

#7

The workaround described in 55330 (moving JDK in /usr/java or /opt/java or /usr/lib/jvm) did the trick for me.


#8 (Project Member)

Sorry - just to clarify, this is the same bug as 55299. If you can't get to the Welcome Screen at all, then the only other possibility is to use the fix as described by comment #7 - put a JDK inside one of those folders.


If that doesn't work, please wait for the updated release due out early next week.

아.... JDK위치를 옴기란다......

더불어 다음주 일찍 업데이트 해준다니......기다리긴 개뿔 직접 해결하자...


그렇다... 망할 잉여력 덕분에 생긴 현상이였다...

apt-get을 이용하지않고 메뉴얼로 원하는 경로에 설치하던 것이 이러한 일을 만들었구나.................



해결방법은...

그래... 저 위치로 JDK를 옴기면 된다.....된다.........(는 꺼졍.......)


뭘 옴기고 있냐..... 그냥 심볼릭 링크 하나 걸자 =_=

$sudo ln -s $JAVA_HOME /usr/java


그리고 실행하면 실행된다~



아... 실행됬다...ㅠㅠ






그리고 해당 증상의 원인은.... 아래와 같은....

http://grepcode.com/file/repository.grepcode.com/java/ext/com.jetbrains/intellij-idea/12.0/com/intellij/openapi/projectRoots/impl/JavaSdkImpl.java#156


소스를 보면.................Java위치가 고정되어있다....망할....

왠지 그냥 Intellij에서도 동일한 증상이 발생할거 같다......=_=;;;;

다들 그냥 apt-get으로 java설치하나보다.....아니면 저 위치에 설치를 하고있나........;ㅁ;






'Dev/Info > Linux' 카테고리의 다른 글

[.vimrc] 1.Vundle설치 및 사용  (0) 2013.03.18

맥을 이용하면서... 항상 커버를 덮어 재우기 모드를 사용해서 모르고 있었는데

이번에 OS업데이트를 하면서 맥이 재부팅이 안되는 현상을 알게되었다...


처음에는 그냥 오래 걸리겠지 하는 마음으로... 켜놓고 딴일을 하면서 기다려 봐도...

종료가 안되는 현상이 발생하였다.


처음에는 그냥 포기하고.... 강제종료 했었다..




그렇다.. 종료가 안되면 ...찝찝하긴 하지만... 강제종료라는 수단이 있으므로...그러려니 넘어가면되지만...

OS업데이트 완료가 안된다.........OTL......


그리하여 이리저리 검색하고 뒤지고...하여 결국 종료시키는데 성공...!



본인은... 삽질을... 사...사... 아니 좋아합니다...




왠지 이러한 증상을 겪고있을 다른분들도 계실듯하여 끄적여봅니다.

(최근 진행되었던 MacUpdate Bundle 행사때 설치한 프로그램과 관련이 있어서...=_=;;)

혹시나 동일한 현상이라면 이 글로 해결되면 좋겠네요...



일단 맥을 강제종료한뒤 부팅할때 Command+V를 눌러주면 부팅시/종료시 로그를 확인하실수 있습니다.

부팅후 종료를 하면서 로그를 확인해줍니다.....



저같은 경우는 아래와 같이 로그가 뜨고 더이상 진행이 안되었습니다.



아....머리아파.. 봐도 뭐라는지 =_=;;;;




일단 

System: About to call: reboot(RB_AUTOBOOT).

후에 1~2분이상 지연이 생겼고, 후에 

unmount of /home failed (45)

unmount of /net failed (45)

가 뜬뒤 몇분이 지나도 아무런 동작이 없었습니다.

(원래는 이 문구뒤에 done이 뜬뒤 종료가 이루어집니다...)



일단 reboot이 뜨기전 마지막으로 의심가는부분으로 kextu, kextd 가 있어 검색해보니..

https://discussions.apple.com/message/22031645#22031645

이러한 글을 발견할수있었습니다.


쭉 보면 대충...Anti Virus 프로그램에서 발생하는 경우가 있는거 같고....

지난번 MacUpdate Bundle행사때 설치해뒀던 Internet Security 2013과 관련이 있었습니다..


글에 계속 보이는 intego가 Internet Security 2013입니다..

(Internet Security 2013 = intego Virus Barrier + Net Barrier )



보면 해당 프로그램을 재설치 하면된다는데...

결론만 말하면.... 그럴필요 없습니다....=_=;;;;


위에 로그를 보면 kextd이 나오기전에 com.intego.virusbarrier.daemon.realtime 에서 문제가 생겼다고 보여지고

해당부분과 관련된 부분만 해결하면 정상적으로 종료가 됩니다.



해결방법은... 간단합니다 =_=;;;


Real-Time Scanning.....



그냥 저기 켜져있는 Real-Time Scanning을 끄고 종료하시면 됩니다................


원래 Intego설치하면 저기능은 꺼져있던걸로 기억합니다.......

(제가 원래 설치하면 자동업데이트 부터..이런저런 기능 다 켜버려서.....=_=)


그래서 재설치 하면 해결되는듯 보이구요......



다른 Anti Virus 프로그램들도 이런증상이 있을수있으니..

만약 종료가 안된다 하시면... 종료전에 Real-Time Scanning기능을 끄고 종료해보세요... 잘 되실지 모릅니다...




아.................야밤에 이게 뭔 잉여짓인지.......자야겠다.........



리눅스를 사용하다보면 다양한 텍스트 편집기가 존재한다..

기본 텍스트 편집기인 vi부터 확장된 vim 그리고 emacs , gedit등등..



이전에 선배가 한번 설정한거 공개 해달라고 한적이 있어서.

여기서는 개인적으로 사용해는 vim설정을 공개해보려고 한다.


vim의 설정을 위해서는 각 계정 root폴더에 존제하는 .vimrc파일을 이용하여 수정이 가능하다.

$cd

$ls -all

.....

-rw-rw-r--  1 jhkang jhkang      7115  9월  7  2012 .vimrc

......


만약 없다면... 만들어주자...

$cat > .vimrc

* 여기서 cat후에 나가지 못하는분은 Ctrl+D를 누르면 됩니다


이제 저 파일을 vim으로 열어서 설정을 바꿔보기 전에..

몇 가지 플러그인을 설치하도록 하겠다.


그전에..

개인적으로 이런저런 플러그인을 설치하여 적용해도 문제는 없지만.. 

관리가 귀찮고..   불편하고 어지럽다는 단점이 있다...


그래서..

vim 플러그인들을 관리할수 있는 플러그인(?) 하나를 소개 하도록 하겠다..


Vundle

http://kldp.org/node/125263

KLDP에서도 소개된적이 있는 유용한 플러그인 메니져이다.



Vundle 설치

설치방법은...

매우 간편하다.

$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

......

$cat > ~/.vimrc

set nocompatible               " be iMproved

 filetype off                   " required!


 set rtp+=~/.vim/bundle/vundle/

 call vundle#rc()

" let Vundle manage Vundle

 " required! 

 Bundle 'gmarik/vundle'


 " My Bundles here:

 


 " non github repos

 Bundle 'git://git.wincent.com/command-t.git'

 

 filetype plugin indent on " required!

이렇게만 하면 설치 완료..!!


vim에 들어가서 설치가 되었나 확인해보자..

$vim

응?....... 변한게 없을꺼다...... 당연하다...=ㅁ=;;;


Vundle이 설치됬는지 확인하려면

아래 명령어가 나오는지 확인해보면 된다.

:Bu입력후 [Tab][Tab][Tab]~

아래와 같은 명령어들이 나오는지 확인해보자

:Bundle

:BundleClean

:BundleDocs

:BundleInstall

:BundleList

:BundleSearch

:BundleUpdate

:Bundles

나온다면 설치가 된것이다.....



Plugin 설치

이제 설정을 시작해 보자

$vim ~/.vimrc


:BundleSearch

아마 잘 따라했다면 창이 나뉘면서 왼쪽에 플러그인리스트가 쭉 나올것이다.....


여기서 NERDTree를 찾아서 설치해보자....

NERDTree의 Bundle명은 The-NERD-tree다.

/NERD

n

n

...(The-NERD-tree가 나올때 까지....=_=)


한번에 찾고싶다면...그냥

/The-NERD-tree 로 찾도록하자..

찾았으면 .vimrc에 복사하여 붙여넣어야 한다.


다들 아시겠지만.... 

복사 붙여넣기를 위해 알아야할 명령어....

V (라인 선택 - 대문자"v"다)

y (복사)

Ctrl+w누른후 l (오른쪽 창으로 이동)

Ctrl+w누른후 h (왼쪽 창으로 이동)

p (붙여넣기)



위와 같이 완료 했다면 :wqa (저장하고 전부 닫아준다....)후

아래와 같이 따라해준다

$vim 

:BundleInstall

:q

또는 

$vim +BundleInstall +qall


이제 vim을 열어서 NERDTree가 설치되었는지 확인해보자..

$vim

:NERDTree        (:NE만 입력후 [Tab]을 누르면 나온다..)

위의 명령을 따라 했을때 왼쪽에 NERDTree가 나온다면 설치가 잘된것이다.



Plugin 삭제

플러그인 설치법을 알아봤으니 삭제도 해봐야 하지 않겠는가..


플러그인 삭제는 .vimrc에서 삭제할 plugin을 지워주면 된다.

 " My Bundles here:

 Bundle 'The-NERD-tree'

위와 같이 되어 있다면 


 " My Bundles here:


또는 

 " My Bundles here:

 " Bundle 'The-NERD-tree'

위와 같이 변경해 준다.


그리고 설치때와 동일하게 :wqa (저장하고 창을 전부 닫아준다...)후

아래와 같이 따라해준다.

$vim

:BundleClean

:q

또는 

$vim +BundleClean +qall

*삭제시에는 삭제 할것인지 아닌지 물어보는 문구가 나온다 [y/n]



설치된 Plugin 확인

아주 간단하다...=_=;;;

$vim

:BundleList

...


왼쪽에 설치되어 있는 plugin들이 나올것이다...



이걸로 Vundle 설치 및 사용법 끝~




쓰다가 임시 저장된글을 맥북에서 수정하려니 안보여서 날아간 줄 알고 깜짝 놀랐습니다......;ㅁ;

원래 작성하던 컴퓨터로 확인하니 잘 있더군요.... 원래 이런건지.....

'Dev/Info > Linux' 카테고리의 다른 글

[Linux] Android Studio 실행 오류  (2) 2013.05.20

음...=_=;;;


해골책... 예제는 따라쳐도 LINK Error....

해결법은 책에 안나오고.... 하라는말도 없고....


error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixPerspectiveFovLH@20 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixLookAtLH@16 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixRotationY@8 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: __imp__timeGetTime@0 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.


Tutorial 3번 Matrices을 컴파일 하다보면 위와같은 Error를 만나게 된다....


일단

error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

위 애러는... 


지난 게시글인

[Direct3D] DivecCreate LNK2019, LNK1120, C2440, C2664 Error 해결법

을 확인하면 알수있듯..

"속성->구성속성->링커->입력->추가 종속성"에 d3d9.lib를 추가해주면 된다.



그 다음 애러인 

error LNK2019: _D3DXMatrixPerspectiveFovLH@20 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixLookAtLH@16 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

error LNK2019: _D3DXMatrixRotationY@8 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

위 3가지 LINK Error는 이번 Tutorial 에서 d3d9.h가 아닌 d3dx9.h을 이용하면서 발생...


편집창을 확인하면 

#include <d3dx9.h>와 D3DX~부분이 빨간 밑줄 표시 되어있을것이다...

(아니라면 아래 단계중 포함디렉터리 부분은 패스해도 상관없을것으로 예상...)




해결 방법은 위 그림과 같이

"속성->구성속성->VC++ 디렉터리" 에서

포함디렉터리에 $(DXSDK_DIR)Include

참조디렉터리에 $(DXSDK_DIR)Lib\x86 또는 $(DXSDK_DIR)Lib\x64 (운영체제가 32bit이면 x86, 64bit이면 x64)

를 추가하고




"속성->구성속성->링커->입력->추가 종속성"에 d3dx9.lib를 추가해주면 된다.


마지막으로 

error LNK2019: __imp__timeGetTime@0 외부 기호(참조 위치: "void __cdecl SetupMatrices(void)" (?SetupMatrices@@YAXXZ) 함수)에서 확인하지 못했습니다.

이 애러는 TimeGetTime함수를 사용하기 위해서 포함한 mmsystem.h 때문에 생긴 애러로...




"속성->구성속성->링커->입력->추가 종속성"에 winmm.lib를 추가해주면 된다.

Direct 프로젝트 도중 


error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) 함수)에서 확인하지 못했습니다.

fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.


위와 같은 애러가 나올경우 



위와 같이 링커->입력->추가 종속성에 d3d9.lib만 추가해주면 된다....


또 


error C2440: '초기화 중' : 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

error C2664: 'CreateWindowExW' : 매개 변수 2을(를) 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.

error C2664: 'UnregisterClassW' : 매개 변수 1을(를) 'const char [13]'에서 'LPCWSTR'(으)로 변환할 수 없습니다.


위와 같은 애러가 나오는경우 




"D3D Tutorial" 을 L"D3D Tutorial" 처럼 해당 const char앞에 L을 붙여주거나

위의 화면처럼 구성속성->일반->문자집합을 멀티바이트 문자집합으로 사용으로 변경해주면 된다.



=_= 왜 책에는 그런 설명이 없지..


여튼..... 

책사놓고 이제야 펴서 시작하는데...

언능보고 딴것도 해야지......=_=;;

'Dev/Info > Direct3D' 카테고리의 다른 글

[Direct3D] Matrices 예제 LINK2019 Error  (0) 2012.06.09