Superkkt Blog

C++로 프로그램을 만들다가 C로 개발된 라이브러리를 사용해야 하는 경우가 있다. 이때 그냥 컴파일을 하면 링킹 과정에서 C 라이브러리를 못찾는다는 에러가 발생한다.

이럴때 해결 방법은 두 가지이다.

1. C 라이브러리 수정

C 라이브러리의 헤더 파일을 아래와 같은 매크로로 감싸준다.

 #ifdef __cplusplus
extern "C" {
#endif

... your C header file ...

 #ifdef __cplusplus
}
#endif


2. C++ 코드 수정

C 라이브러리의 파일을 변경할 수 없는 경우(?)에는 C++ 코드를 변경하면 같은 효과를 얻을 수 있다. 아래와 같이 C 라이브러리 헤더 파일을 인클루드하는 코드의 전후에 위와 동일하게 매크로를 추가한다.

#ifdef __cplusplus
extern "C" {
#endif

#include <potracelib.h>

#ifdef __cplusplus
}      
#endif



2010/03/30 11:58 2010/03/30 11:58

trackbacks

trackbacks rss

http://superkkt.com/trackback/497

  1. tkhwang의 생각

    Tracked from "tkhwang's me2DAY" 2010/04/12 08:26 D

    C++에서 C 함수 호출하기. 참고…

Leave a Comment