이클립스 CDT "Makefile Project with Existing Code"
안녕하세요 리눅스와 이클립스 극초보입니다.
리눅스에 이클립스 CDT를 설치하고, "Makefile Project with Existing Code" 메뉴를 사용하여 makefile가 있는 디렉토리를 설정하여 새 프로젝트를 만들었습니다. 현재 프로젝트에 사용되는 c++ 구조는..
- OPT/Model/Engine 디렉토리에 h 와 cpp 들이 존재하고요.
- OPT/Model/Engine/Release 디렉토리에 makefile, object.mk, sources.mk, subdir.mk 가 존재합니다. 그리고 빌드를 실행하면 각종 .o 파일과 .d 파일들이 Release 폴더안에 생성됩니다. 물론 빌드를 하면 바이너리도 Release 폴더에 생성됩니다. 일단 이클립스로 빌드를 해보니 빌드는 되네요 (object 파일들과 바이너리 생성됨).
질문 1) 이클립스에서 "Makefile Project with Existing Code" 를 이용하여 project를 생성하는 경우, 저는 makefile이 있는 Engine/Release 디렉토리를 지정하기 때문에... 이클립스 프로젝트 생성 후, 프로젝트 파일에 소스파일(h/cpp)은 뜨지않고 .o, .d, .mk, make 파일들 그리고 외부 include 파일들만 뜨게 됩니다. 이런 경우 만약 제가 소스를 수정하고 싶다면 어떻게 해야 하나요? 이클립스 Project explorer에 소스를 따로 import 해줘야 하는건가요? 만약 그렇다면 어떤 메뉴를 써야 하나요? 애시당초 저는 makefile 위치가 소스와 같이 있어야 하고 Release 디렉토리에는 object 파일들과 binary가 있어야 한다고 생각했었는데, 전임자의 셋팅이 다소 이해가 안갑니다.
질문 2) 질문1과 연관된 질문이지만, 소스가 안보여서 디버그(Break point)따위를 하려고 하는데, 이것도 일단 소스파일이 이클립스 프로젝트에 로딩 되어야 하는거죠?? 현재 소스파일들이 프로젝트로 로드되지 않아서 안되는것 같은데, 제 추측이 맞나요??
질문 3) Makefile와 mk 파일들을 보면 CPLEX 와 XML Parser 라이브러리들을 호출합니다. 이 정보들은 objects.mk 파일에 있는데, 이클립스 프로젝트에 import된다면 이클립스 CDT 메뉴에서 볼수 있는 건가요?? (마치 VC의 프로젝트 property 같이요). VC에 너무 익숙한 나머지 이클립스도 프로젝트 property 같은 기능이 있을거라는 추측으로 질문드립니다. 전임자가 만든 makefile와 mk 파일들을 보니, 이 파일들 또한 이클립스 CDT로 자동 생성된것 같습니다(makefile이 제법 커서 dependency들도 꽤 많네요).
저도 윈도우즈 태생이라, 일단 전체 소스파일들을 윈도우즈 OS로 dump해서 이틀정도 투자해서 윈도우즈 VC++로 전환해서 디버깅 가능하게 만들고 알고리즘과 전체구조는 파악하고 있는데, 결국 리눅스에서 돌려야 하는 software라서 이클립스 CDT가 가장 좋은 해법인것 같습니다. 현재 전임자가 없는 상황이라 이 프로젝트가 초기에 어떻게 셋팅된 것인지 아무것도 모르겠네요. 그냥 파일들만 있을 뿐입니다. 조언 부탁드립니다.
어렵네요
Qt도 있으니까 참고해보세요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
전임자가 CDT를 써서 만든건가요? 아니면 그냥
전임자가 CDT를 써서 만든건가요? 아니면 그냥 기존에 있는 Makefile을 CDT로 불러왔다는 건가요?
Makefile은 범용 빌드 툴로 쉘스크립트까지 불러올 수 있기 때문에 결국엔 Makefile 안에서 모든 것을 조작할 수 있습니다.
즉, Makefile 파일 하나로 하나의 스크립트 프로그램이라고 보시면됩니다.
Makefile과 소스가 함께 있어야 한다는 제약같은건 존재하지 않습니다.
이것은 마치 워드 파일이 워드 실행파일과 같은 곳에 있어야 열 수 있다는 주장과 비슷합니다.
저는 CDT를 사용하지 않으므로 일반적인 이야기를 하겠습니다만, 이미 존재하는 Makefile을 CDT로 불러오셨다면 제대로 인식하지 못할 수도 있습니다.
안에서 어떤 짓을 하고 있을지 모르는데, CDT가 거기서 자동으로 모든 소스 파일과 해더파일을 파싱해서 읽어올 순 없습니다.
개발환경을 CDT로 세팅하고 싶으시다면 그냥 처음부터 프로젝트를 CDT로 새로 만들고 거기에 기존 소스들을 import해오는 형식으로 하시는게 좋아보입니다.
전임자가 CDT를 쓴것 같습니다.
CDT를 쓰시면 makefile을 만들면서 그 안에 자동으로 주석이 하나 달리는데요. 그걸 보고 CDT를 사용한것이라고 추측하고 있습니다. makefile과 소스와 함께 있어야 하는 제약은 아니고 무슨 이유인지 일반적으로 알고 있는 convention과 조금 다르게 셋팅이 되어 있는것 같습니다 (Release 폴더에 Debug 바이너리도 생성). 처음엔 SERENA 라는 관리 프로그램을 두고 있는 터라 그럴수도 있겠거니 생각했는데, 딱히 그렇게 구성해야 할 이유도 없는것 같고요.
조언해주신대로 makefile을 불러올것이 아니라 처음부터 CDT 프로젝트를 만들어야 할것 같습니다. 저도 이클립스와 CDT를 처음으로 사용해보는 터라 기대감에 충만하여 makefile을 import 하면 혹시 프로젝트에 연결된 모든 소스파일들을 자동으로 load 시킬꺼라는 얄팍한 기대(?)를 가지고 있었습니다만 아니군요. 여튼 감사드립니다.
Hello!
전임자가 CDT를 썼다면 CDT용 프로젝트 파일이
전임자가 CDT를 썼다면 CDT용 프로젝트 파일이 있을텐데요. 확장자가 cproject 니까 cproject 로 끝나는 파일을 찾아서 CDT로 열어보세요.
댓글 달기