윈도우에서 SWIG를 이용해 Python과 C를 연동하는 방법에 대한 자료가 별로 없어 정리해 보았다.
C 코드 작성
진행하기 전에 자신의 컴퓨터에 Cygwin과 GCC가 준비되어 있지 않은 경우 [구글]을 이용해 먼저 설치하기 바란다. 설치를 했으면 다음과 같이 간단한 C 코드를 작성해서 sample.c 라는 이름으로 적당한 디렉토리에 저장한다.
/* sample.c */ int echo(int p) { return p; } int add(int x, int y) { return x + y; }
그리고 Cygwin을 열어서 sample.c 파일이 있는 디렉토리로 이동한다.
여기에서는 'D:\PrjRoot\python_lec' 디렉토리에 sample.c 파일이 있다고 가정하고 진행한다.SWIG
다음은 sample.c 코드를 Python에서 이용하기 위한 정보 파일인 SWIG 인터페이스, sample.i 파일을 만든다.
그럼 이제 object 파일을 가지고 공유 라이브러리를 만들어 Python에서 사용할 수 있도록 하자.
/* sample.i */ %module sample %{ extern int echo(int); extern int add(int, int); %} extern int echo(int); extern int add(int, int);
그리고 SWIG를 이용해 Wrapper 파일을 생성한다.
그럼 이제 object 파일을 가지고 공유 라이브러리를 만들어 Python에서 사용할 수 있도록 하자.
Python 연동 테스트
마지막으로 'test.c' 있는 함수들을 사용할 수 있는지 파이썬 코드를 만들어 테스트해 보자.
# test.py import sample print sample.echo(5) print sample.add(2, 5)
참고로 위 코드를 작성하고 테스트한 환경은 다음과 같다.
- Windows XP Professional SP3 한글
- Python 2.6
- SWIG 1.3.36 윈도우용
- Cygwin 2.573.2.3
- Python 2.6
- SWIG 1.3.36 윈도우용
- Cygwin 2.573.2.3
'Python' 카테고리의 다른 글
[Python] 콘솔 입력 시 NameError가 발생하는 이유 (4) | 2015.05.17 |
---|---|
Windows에서 Python 설치하기 (0) | 2015.04.27 |
easy_install 및 pip 설치 (0) | 2015.04.19 |
Python 버전별 정수 공유 범위 (0) | 2015.04.19 |
Python 기본 자료형 비교 (0) | 2015.04.19 |