Windows 10 시스템 Python 2.7 Swig 를 통 해 C + + 프로 세 스 를 호출 합 니 다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.