티스토리 뷰

서로 다른 두 소스코드 파일(.c, .cpp)에 이름이 동일한 함수가 다음과 같이 정의가 되어 있다.

 

A.cpp

 

void foo(){~~}

 

 

B.cpp

 

void foo(){~~}

 

그리고 이 두 소스코드 파일에 의해 생긴 lib 파일을 링킹하는 과정에서

 

multiple definition of ~ 쏼라쏼라 하는 오류를 마주할 수 있다.

 

이 경우 각 함수를 static 함수로 만들어주면 해당 오류를 제거할 수 있다.

 

함수 앞에 static을 붙이면 그 함수가 정의된 소스코드 파일에서만!! 사용하는 함수로 인식되어 위와 같은 충돌을 피할 수 있다.

 

혹은 namespace 를 사용해 각각의 함수가 별개의 namespace 에 속하도록 만들어주면 된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함