본문 바로가기

C/C++

C라이브러리를 C++과 호환되도록 하는 방법

@markdown


# C라이브러리를 C++과 호환되도록 하는 방법


C로 작성한 라이브러리를 C++과 함께 사용해야 할 때가 종종 있다. 그러나, C와 C++의 심볼 컨벤션이 다르기 때문에 곧바로 사용할 경우, 링크 단계에서 심볼을 찾지 못하고 에러가 발생한다.

_

해결 방법은 의외로 간단하다. 다음과 같은 몇가지 약속을 지키면 된다.

- C++에서 사용할 심볼(변수 또는 함수)은 `extern "C"`로 묶어두어야 한다. C++에서 직접적으로 사용하지 않는 심볼은 묶을 필요 없다.

- C라이브러리의 오브젝트 파일 또는 라이브러리는 C컴파일러를 사용해서 생성한다.

_

**`extern "C"`로 묶인 심볼들은 C++ 컴파일러가 C의 컨벤션을 사용하도록 안내한다.**


'C/C++' 카테고리의 다른 글

C 옵션 처리 라이브러리 - getopt  (0) 2017.06.25
flex bison 참고자료  (0) 2017.04.26
Nonblocking I/O in C  (0) 2017.04.03
pthread detach  (0) 2017.02.11
C 프로세스 자원 사용량 확인하기  (0) 2017.01.28