1、配置c++环境(这里我使用的vscode,安装的c++扩展能自动寻找编译器路径)
2、遇到的两个问题:
1、Microsoft Visual C++ 14.0 is required:
需要去visual studio 官网下载这个exe文件,安装时勾选c++1.43(这里要求14.0以上)
2、#include "stdafx.h"无法直接导入,需要替换成以下
#include <stdio.h>
#include <tchar.h>
3、下载pybind11
git clone https://github.com/pybind/pybind11.git
4、编写setup_pybind.py
# -*- coding: utf-8 -*-
"""
Created on Tue May 12 17:32:25 2020
@author: dell
"""
#Filename: setup.py
from setuptools import setup, Extension
functions_module = Extension(
name='launch_camera',
sources = ['D:\pyprojects\inspectis-sdk\Win32\ControlSoftwareExample.cpp'],
include_dirs = ['D:\pyprojects\pybind11\include']
)
setup(ext_modules = [functions_module])
sources为需要编译的cpp文件,include_dirs为pybind11下的include文件
5、运行编译脚本
cd到setup_pybind.py目录下
python setup_pybind.py build_ext --inplace
6、导入外部库(尚未解决)
一直报错:ControlSoftwareExample.obj : error LNK2001: 无法解析的外部符号 "public: __cdecl ControlSoftware::CameraControl::CameraControl(void)" (??0CameraControl@ControlSoftware@@QEAA@XZ)
build\lib.win-amd64-cpython-39\launch_camera.cp39-win_amd64.pyd : fatal error LNK1120: 11 个无法解析的外部命令