반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AMBA
- pytest-pythonpath 설치 오류
- 데이터 해저드
- linux c++ 컴파일
- Pyvrilog tutorial
- pygraphviz 설치 오류
- 남산업힐
- 컨벌루션 연산
- linux makefile 작성
- 클럭 게이팅
- Design DNN Accelerator
- DNN 가속기
- Pyverilog 설치
- linux c 컴파일
- 이진수 곱셈 알고리즘
- systolic array
- pyverilog 설치 오류
- gpgpu-sim
- Makefile compile
- gcc 컴파일
- CDC
- DNN Accelerator
- CUDA
- Pyverilog 실행
- 딥러닝 가속기
- CLOCK GATING
- makefile
- 대구 반도체 설계기업 특화
- Data HAzard
- Pyverilog 튜토리얼
Archives
- Today
- Total
오늘은 맑음
swig로 python에서 c function 호출하기 본문
반응형
swig를 이용하여 python에서 c모듈 호출하기
프로그램 구조
- func.c : 함수들을 모아놓은 c 소스파일
- func.i : 이 파일을 이용하여 swig로 wrap파일을 생성해준다.
- main.py : 파이썬 프로그램이며 func.c에 있는 함수들을 호출한다.
makefile
_func.so : func.c func_wrap.c func.o func_wrap.o func.i
ld -shared func.o func_wrap.o -o _func.so
func_wrap.c : func.i
swig -python func.i
func.o func_wrap.o : func.c func_wrap.o
gcc -fPIC -c func.c func_wrap.c -I/usr/include/python2.7
clean :
@rm -rf *.o *.so *_wrap.c func.py
가장 먼저 실행될 명령어는 func_wrap.c를 생성하는 명령어이다.
swig -python func.i 명령어를 이용하여 func_wrap.c파일을 생성한다.
그 다음은 오브젝트 파일 생성이다.
-fPIC옵션을 이용하여 공유라이브러리에서도 가능하게 만들어준다.
또한 -I/usr/include/python2.7 디렉터리에서 python.h파일을 사용한다.
오브젝트 파일이 모두 생성되면 모듈생성이 시작이 된다.
모듈의 이름은 _로 시작되며 c파일과 이름이 같아야 한다. 또한 확장자는 .so가 되야한다. 따라서 _func.so파일이 생성된다. shared옵션을 사용하여 공유라이브러리를 가장 먼저 사용하게 해준다.
make명령어를 입력하게 되면 _fun.so파일이 생성되며 python main.py명령어를 이용해서 실행시켜주게 되면 main에서 불러온 함수들이 동작을 하게 될 것이다.
반응형
'Language > Python' 카테고리의 다른 글
Python 접두사/접미사로 문장 검색(startswith, endswith) (0) | 2021.07.10 |
---|---|
Python 파일을 읽고 써보자(write, writelines, read, readline, readlines) (2) | 2021.07.10 |
Python 파일을 열어보자(open, close) (0) | 2021.07.10 |
Python을 이용한 자동화 테스트 환경 구성 (0) | 2021.04.17 |
Linux 기본 python 버전 변경 (0) | 2019.11.12 |
Comments