강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của moebgnusmik
moebgnusmik

câu hỏi đã được viết

[Loạt bài phát triển game MMORPG bằng C++ và Unreal] Phần 1: Nhập môn lập trình C++

Quản lý chia nhỏ tập tin

.h와 .cpp는 어떤 원리로 연결되나요?

Viết

·

426

0

안녕하세요, 궁금한 점이 생겨 질문드립니다.

a.h와 a.cpp, main.cpp가 있을 때

main.cpp에 #include a.h를 해줬고

컴파일 이후 링킹 과정에서 a.cpp를 링크시킨다고 하던데 이때 과정이 궁금합니다.

a.h와 a.cpp의 이름 a를 통해 연결되는 건가요,

아니면 a.cpp안의 #include a.h를 보고 연결시키는 건가요?

감사합니다!

C++

Câu trả lời 1

1

질문하기 전에 구글링을 반드시 합시다. 

[OS]링킹(Linking)이란? 링커(Linker)란? 컴파일 과정,목적파일, 빌드과정 (tistory.com)

 

원리를 깊게 들어가면 끝도 없으니 간단하게 설명 드리자면

a.cpp 안에 #include "a.h" 가 있으면 "전처리기"가 그 부분에다  a.h  안에 있는 모든 내용을 복붙합니다

따라서 링킹 과정에서 .h 헤더 파일은 존재할 수가 없습니다. a.h안에 있는 모든 코드는 a.cpp 안에 들어갑니다.

그 후 main.cpp와 a.cpp는 기계어로 된 main.o  a.o 파일로 "컴파일 "되고, 이 파일들은

startup-code와 함께 링킹되어 exe 실행파일이 만들어 집니다. (윈도우 기준)

 

참고로 파일의 이름은 아무 연관이 없습니다.

 

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

좋은 정리 감사드립니다!

Hình ảnh hồ sơ của moebgnusmik
moebgnusmik

câu hỏi đã được viết

Đặt câu hỏi