Windows 10 시스템 Python 2.7 Swig 를 통 해 C + + 프로 세 스 를 호출 합 니 다.

제 가 사용 하 는 python 버 전 은 2.7.12 입 니 다.
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32
 
1, Swig 다운로드
  다운로드 주소:http://www.swig.org/download.html최신 버 전 swigwin - 4.0.0 을 다운 받 았 습 니 다. 다운로드 후 직접 압축 을 풀 고 swig. exe 가 있 는 디 렉 터 리 를 시스템 환경 변수 Path 에 추가 합 니 다.Command 에 swig - version 을 입력 하 십시오. 버 전 번호 설명 이 나 오 면 추가 에 성공 합 니 다.
 
2, c + 코드 작성
  헤더 파일 example. h
 1 #pragma once
 2 
 3 #include 
 4 using namespace std;
 5 
 6 class Example {
 7 public:
 8 
 9     const char* getString();
10     void setString(const char* str);
11 };

  example.cpp
 1 #include "example.h"
 2 
 3 void Example::setString(const char* str)
 4 {
 5     cout<endl;
 6 }
 7 
 8 const char* Example::getString()
 9 {
10     return "hello";
11 }

 
3, example. i 파일 작성
1 %module Example
2 
3 %{
4 #include "example.h"
5 %}
6 
7 %include "example.h"

 
4, setup. py 파일 작성
1 from distutils.core import setup,Extension
2 test_module = Extension('_Example',sources = ['example_wrap.cxx','example.cpp'],)
3 setup(name = 'example',
4       version = '0.1',
5       author = '',
6       description = 'Simple swig example',
7       ext_modules = [test_module],
8       py_modules = ['example'],
9       )

 
5, 실행 명령 regedit 레 지 스 트 를 열 어 다음 경로 에 이 키 가 있 는 지 확인 합 니 다.  produtdir: VS 설치 디 렉 터 리 \ VC \ Auxiliary \ Build, 없 으 면 새 디 렉 터 리 와 키 를 추가 합 니 다.이 디 렉 터 리 "VS 설치 디 렉 터 리 \ VC \ Auxiliary \ Build" 는 사실 vcvarsall. bat 파일 이 있 는 디 렉 터 리 입 니 다. python 은 vcvarsall. bat 를 사용 해 야 합 니 다.
\HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC
내 VS 는 c: \ vs 2019 에 설치 되 어 있 기 때문에 produtdir: c: \ vs 2019 \ \ VC \ Auxiliary \ Build 를 설정 합 니 다.
 
6. Command, cd 를 example. i 로 엽 니 다.  파일 이 있 는 디 렉 터 리, c + 파일 과 example.i  파일 은 같은 디 렉 터 리 에 있 습 니 다.다음 명령 을 입력 하 십시오:
  swig -python -c++ example.i
  파일 Example. py 와 example_wrap.cxx。
 
7, command 명령 계속 입력:
  python2 setup.py build_ext --inplace
 생기다 _Example. pyd 파일.이 파일 이 생 성 되 지 않 았 다 면 오류 원인 을 보 세 요. 5 단계 에 성공 하지 못 하면 vcvarsall. bat 를 찾 을 수 없습니다.
 
8, command 입력 Python 2 python 환경 에 들 어가 기:
>>> from Example import *>>> ex = Example()>>> ex.getString()'hello'>>> ex.setString("hello")hello
설명: Visual studio 를 통 해 pyd 파일 을 만 들 지 않 는 것 이 좋 습 니 다. python 이 VC 버 전과 일치 하지 않 으 면 여러 가지 오류 알림 이 발생 할 수 있 기 때 문 입 니 다.예 를 들 어 2.7.12 는 MSC v. 1500 즉 VS 2008 버 전이 필요 하 다.
MS VC++ 14.0 _MSC_VER = 1900 vs2015 MS VC++ 12.0 _MSC_VER = 1800 vs 2013 컴 파 일 러 그의 플랫폼 은 v120 MS VC + 11.0MSC_VER = 1700 vs 2012 컴 파 일 러 그의 플랫폼 은 v110 MS VC + 10.0MSC_VER = 1600 Visual C++ 2010 MS VC++ 9.0 _MSC_VER = 1500 Visual C++ 2008 MS VC++ 8.0 _MSC_VER = 1400 Visual C++ 2005 MS VC++ 7.1 _MSC_VER = 1310 MS VC++ 7.0 _MSC_VER = 1300 MS VC++ 6.0 _MSC_VER = 1200 MS VC++ 5.0 _MSC_VER = 1100

좋은 웹페이지 즐겨찾기