当前位置: 首页 > news >正文

网站开发背景图苏州软件公司排行榜

网站开发背景图,苏州软件公司排行榜,网站文件名优化,做网站用asp还是php安装 C与 Python 绑定工具 pip install pybind11这其实相当于使用 python 安装了一个 c的库 pybind11,这个库只由头文件构成#xff0c; 支持基础数据类型传递以及 python 的 numpy 和 c的 eigen 库之间的自动转换。 编写 CMakeList.txt cmake_minimum_required(VERSION 3.14)…安装 C与 Python 绑定工具 pip install pybind11这其实相当于使用 python 安装了一个 c的库 pybind11,这个库只由头文件构成 支持基础数据类型传递以及 python 的 numpy 和 c的 eigen 库之间的自动转换。 编写 CMakeList.txt cmake_minimum_required(VERSION 3.14) project(demo)# 设置 C 标准 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)# 查找 pybind11 set(pybind11_DIR /home/erge/work/python/venv/demo/lib/python3.10/site-packages/pybind11/share/cmake/pybind11) # 这里是 pybind11 的安装路径一般在虚拟环境的site-packages里面 find_package(pybind11 REQUIRED) find_package(Eigen3 REQUIRED) # 如果你使用的是系统安装的 pybind11也可以使用 # find_package(pybind11 REQUIRED MODULE)# 包含头文件路径 include_directories(${PROJECT_SOURCE_DIR}/include) include_directories(${pybind11_INCLUDE_DIRS}) include_directories(${EIGEN3_INCLUDE_DIR})# 添加模块 pybind11_add_module(demo main.cc)编写c代码 创建一个名为 main.cc 的源文件并添加以下内容 #include pybind11/pybind11.h #include pybind11/stl.h #include vector #include string #include cmathnamespace py pybind11;// 示例1: 简单函数 int add(int i, int j) {return i j; }// 示例2: 字符串操作函数 std::string greet(const std::string name) {return Hello, name !; }// 示例3: C 类 class Calculator { public:Calculator(double initial_value 0.0) : value(initial_value) {}void add(double x) {value x;}void multiply(double x) {value * x;}double get_value() const {return value;}void set_value(double v) {value v;}private:double value; };// 示例4: 使用 STL 容器 std::vectordouble square_list(const std::vectordouble input) {std::vectordouble result;result.reserve(input.size());for (const auto item : input) {result.push_back(item * item);}return result; }// 示例5: 数学计算函数 double calculate_distance(double x1, double y1, double x2, double y2) {double dx x2 - x1;double dy y2 - y1;return std::sqrt(dx * dx dy * dy); }// Python 绑定部分 PYBIND11_MODULE(demo, m) {m.doc() pybind11 示例模块; // 模块文档字符串// 绑定简单函数m.def(add, add, 两个整数相加,py::arg(i), py::arg(j));m.def(greet, greet, 问候函数,py::arg(name) World);// 绑定数学函数m.def(calculate_distance, calculate_distance, 计算两点间距离,py::arg(x1), py::arg(y1), py::arg(x2), py::arg(y2));// 绑定STL容器函数m.def(square_list, square_list, 计算列表中每个元素的平方);// 绑定类py::class_Calculator(m, Calculator).def(py::initdouble(), 构造函数, py::arg(initial_value) 0.0).def(add, Calculator::add, 加法操作, py::arg(x)).def(multiply, Calculator::multiply, 乘法操作, py::arg(x)).def(get_value, Calculator::get_value, 获取当前值).def(set_value, Calculator::set_value, 设置当前值, py::arg(v)).def(__repr__, [](const Calculator c) {return Calculator value std::to_string(c.get_value()) ;}); }python调用 使用上面的 CMakeLists.txt 和 main.cc 即可编译生成 demo.so 文件接下来只要将这个 demo.so 文件添加到 python 的路径中就可以在 python 中调用 C 函数了。 import sys sys.path.append(/home/demo/build) # 添加 .so 所在路径 import demo # 引入 .so调用 C 函数# 测试简单函数 print( 简单函数测试 ) result demo.add(3, 4) print(f3 4 {result})greeting demo.greet(Python) print(greeting)# 测试数学函数 print(\n 数学函数测试 ) distance demo.calculate_distance(0, 0, 3, 4) print(f点(0,0)到点(3,4)的距离: {distance})# 测试STL容器 print(\n STL容器测试 ) numbers [1.0, 2.0, 3.0, 4.0, 5.0] squared demo.square_list(numbers) print(f原列表: {numbers}) print(f平方后: {squared})# 测试类 print(\n 类测试 ) calc demo.Calculator(10.0) print(f初始值: {calc.get_value()})calc.add(5) print(f加5后: {calc.get_value()})calc.multiply(2) print(f乘2后: {calc.get_value()})calc.set_value(100) print(f设置为100后: {calc.get_value()})print(f对象表示: {calc})
http://www.pierceye.com/news/606666/

相关文章:

  • 贵阳市建设厅官方网站官方网站开发需要几个技术人员
  • 电子政务网站模版科学规划网页的做法是
  • 昆明网站建设猫咪科技抚州网站建设
  • 山东网站建设运行工资做的很漂亮的网站
  • 网站免费源码大全无用下载淘宝支持做微交易网站吗
  • 常用网站推广方法石家庄营销网站建设价格
  • 网站界面设计的基本原则是什么论坛做视频网站
  • 学校网站总务建设怎么做网站流量竞品分析
  • 企业网站建设所需要的资料网站备案 icp备案
  • 商城类网站方案中国风 wordpress主题
  • 网站更换服务器教程南阳网站推广招聘
  • 海尔网站的建设目标四库一平台个人信息查询
  • 佛山市建设网站公司网站手机端和电脑端
  • 属于c2c的网站是重庆化工建设信息网站
  • 高端大气网站推荐网赌网站建设多少钱
  • 宁波网站关键词优化排名网站修改图片怎么做
  • 苏州网站建设案例购买网站域名
  • 自己做剧本网站重庆建设工业公司官网
  • 中国网站建设中心建网站和开发软件哪个难
  • 优化网站被百度屏阿里云网站备案核验单
  • 肇庆做网站哪家好河北建设工程信息网正规网站
  • 怎么做展示网站公司网站管理规定
  • 娄底网站制作备案号查询平台
  • 青岛网站排名方案优化的定义
  • 微网站开发外包杨浦做网站公司
  • 网站推广服务包括哪些个人简历网官网免费
  • 铜仁住房和城乡建设局网站安贞做网站公司
  • 做网站客户尾款老不给怎么办东莞市研发网站建设品牌
  • 文化网站策划wordpress iscategory
  • 北京社区网站建设wordpress主题 sen