pybind11 调用 C++ 函数

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 个无法解析的外部命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值