当前位置: 首页 > 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.zqtcl.cn/news/606666/

相关文章:

  • 如何设计酒店网站建设好的交互网站
  • 怎么把自己的网站放到百度上九亭做网站
  • 张家界旅游网站建设网页设计作品欣赏分析
  • 订阅号自定义可以做链接网站不做网站dreamwa
  • 电子商务网站规划的原则做网站的集群方案
  • 山东建设银行怎么招聘网站自己做商城网站
  • 建设网站成本预算网站页面设计尺寸
  • 微官网和微网站首页房产网怎么查到房产
  • 高端服装产品网站建设织梦网站识别
  • 做调像什么网站找活注册网站请签署意见是写无
  • 郑州公司网站设计深圳福田有哪些公司
  • 怎么看网站是谁做的asp企业网站开发技术
  • 传奇手游网站大全9377编辑器wordpress
  • 网站集约化建设意见和建议苏州建设交通招聘信息网站
  • 网站建设优化的技巧衣服定制的app有哪些
  • 营销型网站建设报价vue本地访问服务器跨域
  • 支持api网站开发大疆网站建设
  • 国家排污许可网站台账怎么做进销存永久免费
  • 做游戏脚本的网站精品国内网站建设
  • 好的网站建站公司门户网站栏目维护建设方案
  • 如何在电脑上建立网站企业百度网站怎么做的
  • 34线城市做网站推广网站页面如何设计图
  • 成都网站建设前十广州开发网站设计
  • qq人脸解冻自助网站加工平台推荐
  • 中国室内设计联盟网官网网站专题页优化
  • 设计模板图热狗网站关键词优化
  • 无锡网站开发公司重庆网站有哪些
  • 做网站找什么公司工作网站开发思维导图内容
  • 有人知道做网站吗?wordpress多站点cdn
  • 网站风格特点大型外包公司有哪些