• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

전 강의에서 빌드와 컴파일의 이해를 제대로 하지 못한 학생입니다

19.12.12 20:18 작성 조회수 152

2

아직 확실한건 아니지만 빌드는 실행파일로 만들어서 바로 실행 시킬 수 있게 완전히 완성된 파일이고 컴파일은 그 프로그램을 실행하기 위해 쓴 코드들을 컴퓨터 언어로 바꾼 후 다시 아웃풋을 고레벨 언어로 만든 것으로 보이는데 7분 40초 쯤 부터 컴파일을  하였을 떄와 실행을 하였을때 빌드와 컴파일의 차이를 보여주시는건가요? 그리고 오브젝트 파일의 정확한 의미를 모르겠습니다 이것에 대한것은 나중에 더 자세히 알려주시는건가요?

답변 4

·

답변을 작성해보세요.

5

강의를 앞에서부터 차근차근히 보고 계시는데도 이해가 안가신다면 따로 정리를 해드려야겠네요. 비쥬얼 스튜디오 메뉴에 나오는 'Build'는 만들어라! 라는 동사로 생각하셔야 합니다. 메뉴에 있는 Execute (Run)은 실행해라! 가 되겠지요. 

따라서 여기서 빌드는 파일이 아니라 코드를 컴파일하고 링킹해서 실행파일로 만드는 과정을 의미합니다. 경우에 따라서 빌드를 몇 번째 빌드, 버전 몇 빌드 이렇게 명사로 사용하기도 하는데 그건 또 다른 얘기가 되겠네요.

오브젝트 파일도 초보에게는 어려운 구조가 맞습니다. 뒤에 나오는데 코드는 여러개의 translation unit으로 이루어져 있습니다. translation unit은 c파일  하나라고 생각하시면 일단은 간단합니다. 더 자세한 내용은 아직은 어렵겠지만 아래 링크도 봐두시면 좋겠네요. 지금은 한 예제에 c파일이 하나 뿐이지만 뒤로 가면 여러개가 됩니다. 헤더파일도 나옵니다.

https://en.wikipedia.org/wiki/Translation_unit_(programming)

각각의 translation unit을 따로따로 컴파일해서 각각을 오브젝트 파일로 만들고 그 오브젝트 파일들을 링킹(linking, 연결 시켜서 묶는 다는 의미)해서 하나의 실행파일을 만듭니다.

초보때는 어려운 개념들이 맞습니다. 사람에 따라서 처음부터 모두 이해가 갈 수도 있지만 그렇지 않다면 일단은 코딩과 예제 위주로 공부해나가시다보면 경험이 쌓인 후에 해결이 되기도 합니다.

강의에서 충분히 설명을 드렸다고 생각을 했는데 애매한 부분이 있나보네요. 저도 보충할 방법을 찾아보겠지만, 이렇게 애매한 부분이 발생할 때 인터넷이나 다른 교재를 병행해서 찾아보시면 공부 속도가 더 빠릅니다. 프로그래머는 어차피 평생 찾아서 공부하며 살아야 하니까요.

2

5점짜리 수강평 남겨주셔서 감사합니다. 제가 궁금한 점이 있는데, 수강평을 일찍 작성하신 이유가 있나요? 저랑 세대가 달라서 그런가 궁금해서 문의 드립니다.

0

아니에요. 혹시 특별한 이유가 있나 해서 여쭤봤습니다. 공부하는데 시간을 쓰세요 ㅎㅎ 앞 질문에도 추가 답변 달아놨으니 참고하세요.

0

wldnjs2110님의 프로필

wldnjs2110

질문자

2019.12.13

감사합니다 교수님 제가 수강평에 대한 답글도 여러번 남겼는데 글이 남겨졌는지 잘 모르겠습니다 제 컴퓨터 에서는 답글을 남김 긴 기록이 남겨져있지 않아서... 혿시나 제가 교수님의 강의를 대충 평가했다는 오해는 안하셨으면 좋겠어서 다시한번 답글을 남겨 보겠습니다 혹시나 안남겨져 있으면 오해의 소지가 없게 다시 이유를 설명 드리겠습니다