热点
测试架构师闭环思维精修创业逻辑,驱动效率跃升,reasoning_content:我们要求以测试架构师的口吻,写一个与技术、科技相关的标题,主题是点评精修创业逻辑,闭环思维驱动效率跃升式增长需要简短精炼,30字以内直接输出标题,不要加说明nn思考:测试架构师的口吻,可能涉及技术测试、架构、质量、闭环、效率等标题要体现技术性、创业逻辑、闭环思维、效率跃升可以结合测试架构、闭环、增长等关键词例如:闭环思维驱动测试架构,创业逻辑精修效率跃升 但可能稍长更简洁:测试架构闭环思维,精修创业逻辑驱动效率跃升 27字或者:闭环思维精修创业逻辑,测试架构驱动效率跃升 ?还可以考虑技术闭环驱动创业逻辑精修,测试架构效率跃升 等nn建议直接输出:测试架构师视角:闭环思维精修创业逻辑,驱动效率跃升式增长但可能超30字数一下:测试架构师视角:闭环思维精修创业逻辑,驱动效率跃升式增长 共22字?注意标点不算实际上测试架构师视角:算7个字符?通常中文字算字数最好不用冒号试试:闭环思维精修创业逻辑 测试架构驱动效率跃升 16字?闭环思维精修创业逻辑 9字,测试架构驱动效率跃升 8字,共17字可以nn更贴合点评精修中的点评可能指测试中的审批评审?但主题是点评精修创业逻辑,可能是指通过测试架构师的视角来点评和精修创业逻辑所以标题可以体现测试架构师点评nn最终测试架构师点评:闭环思维精修创业逻辑,驱动效率跃升 共20字?测试架构师点评:6字,闭环思维精修创业逻辑9字,驱动效率跃升5字,加逗号共21字可以nn或者更简洁:闭环思维精修创业逻辑 测试架构驱动效率跃升 17字我觉得这个不错nn考虑到要求以测试架构师的口吻,但标题中不一定非要出现测试架构师这个词,只要语境符合即可为了明确,还是带上最终输出:测试架构师闭环思维:精修创业逻辑,驱动效率跃升 共18字或者测试架构师闭环思维精修创业逻辑,驱动效率跃升式增长 可能超了nn测试架构师闭环思维,精修创业逻辑驱动效率跃升 18字好nn我选择:测试架构师闭环思维精修创业逻辑,驱动效率跃升 共17字注意跃升后面没有式增长,但主题中有跃升式增长,为了简洁可以省略式增长nn直接输出
16 9 月 2026, 周三

在OpenHarmony标准系统上使用Python调用C/C++的SO库(移植Python3.8到OpenHarmony标准系统)

  本文介绍如何在OpenHarmony标准系统上部署Python3.8编程环境,并且使用Python调用C/C++的SO库。

  想了解更多关于开源的内容,请访问:

  51CTO 开源基础软件社区

  https://ost.51cto.com

  笔者最近将python解释器Cpython3.8移植到了OpenHarmony标准系统上。并且开源相关编译产物。

  开源仓库:在OpenHarmony标准系统上部署Python3.8编程环境

  本文介绍如何在OpenHarmony标准系统上部署Python3.8编程环境,并且使用Python调用C/C++的SO库。

  目录

  在OpenHarmony标准系统上使用Python调用C/C++的SO库

  在OpenHarmony标准系统上部署Python3.8编程环境

  在OpenHarmony arm64位上部署python3.8编程环境

  在OpenHarmony标准系统中使用Python的ctypes模块调用C/C++的SO库(类似于NAPI)

  在OpenHarmony标准系统上使用Python调用C/C++的SO库

  移植思路分享:

  使用 OpenHarmony NDK 在X86的linux主机上 交叉编译 出OpenHarmony arm平台可以运行的Cpython解释器。

  OpenHarmony系统采用llvm项目中的libc作为C运行时库,在系统侧使用libc ++ .so库来承载,应用侧使用libc++_shared.so来承载,两边一套代码,不同的C++命名空间。 https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/napi/ohos-abi.md#c-abi。

  可执行文件格式:

  OpenHarmony系统采用ELF文件格式作为全系统的二进制文件格式。

  目前缺失的模块:

  1、在OpenHarmony标准系统上部署Python3.8编程环境

  使用环境

  OpenHarmony 4.0R

  SDK: OpenHarmony SDK 官方发布渠道 获取的4.0.10.5

  (1)在OpenHarmony arm64位上部署python3.8编程环境

  相关文件下载地址:python3.8 for arm64 OpenHarmony

  解压cpython-3.8_oh_install.tar.xz文件为cpython-3.8_oh_install.tar文件

  将解压好的cpython-3.8_oh_install.tar文件发送到开发板data目录,将cpython-3.8_oh_install.tar解压。

  复制

  hdc file send cpython-3.8_oh_install.tar /data

  hdc shell #进入开发板终端

  cd data

  tar -xvf cpython-3.8_oh_install.tar

  1.

  2.

  3.

  4.

  设置python命令(cpython编译出来的可执行文件)所在路径。

  复制

  export PYTHONHOME=/data/cpython-3.8_oh_instal/bin

  1.

  设置python库文件所在路径,包含两个路径。

  复制

  # /data/cpython-3.8_oh_install/lib/python3.8里面有基础库的.py文件

  # /data/cpython-3.8_oh_install/lib/python3.8/lib-dynload里面有zlib、libffi等三方库的so 以及 import math需要的math.cpython-38-aarch64-linux-gnu.so等诸如此类的so

  export PYTHONPATH=/data/cpython-3.8_oh_install/lib/python3.8:/data/cpython-3.8_oh_install/lib/python3.8/lib-dynload

  # 设置third_party的so库的查找位置

  # 因为把third_party的,例如libffi的库文件放在/data/cpython-3.8_oh_install/lib/python3.8/lib-dynload

  export LD_LIBRARY_PATH=/data/cpython-3.8_oh_install/lib/python3.8/lib-dynload:$LD_LIBRARY_PATH

  将64位python3和pip添加到系统环境变量中。

  复制

  export PATH=/data/cpython-3.8_oh_install/bin:$PATH

  export PATH=/data/cpython-3.8_oh_install/bin/bin:$PATH

  #上一步中pip3 and pip3.8被安装在/data/cpython-3.8_oh_instal

  export PATH="/data/cpython-3.8_oh_instal/bin/bin:$PATH"

  2、在OpenHarmony标准系统中使用Python的ctypes模块调用C/C++的SO库(类似于NAPI)

  使用环境

  OpenHarmony 4.0R

  SDK: OpenHarmony SDK 官方发布渠道 获取的4.0.10.5

  编译环境:ubuntu18.04

  下面以一个简单的例子来实现在OpenHarmony标准系统中用Python的ctypes模块调用C/C++的SO库(类似于NAPI),按照以下步骤进行:

  1.下载example工程,工程目录结构为

  复制

  .

  ├── CMakeLists.txt

  └── example.c

  example.c内容如下:

  复制

  #include

  // 一个简单的C函数,将两个整数相加并返回结果

  int add(int a, int b) {

  return a + b;

  }

  CMakeLists.txt:

  复制

  add_library(example SHARED example.c)

  1.

  2.使用OpenHarmony NDK编译example工程,下载 OpenHarmony SDK 到linux环境,解压好其中linux的native-linux-x64-x.x.x.x-Release.zip包。

  3.设置OpenHarmony NDK 64位编译工具链环境变量。

  复制

  # 设置 ohos 64bit 库编译工具链环境变量 aarch64-linux-ohos

  export OHOS_SDK=/home/jiajiahao/OpenHarmony/ndk/ohos-sdk/linux # 此处是我的ohos_sdk解压目录,请替换为你自己的解压目录

  export AS=${OHOS_SDK}/native/llvm/bin/llvm-as

  export CC="${OHOS_SDK}/native/llvm/bin/clang –target=aarch64-linux-ohos"

  export CXX="${OHOS_SDK}/native/llvm/bin/clang++ –target=aarch64-linux-ohos"

  export LD=${OHOS_SDK}/native/llvm/bin/ld.lld

  export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip

  export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib

  export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump

  export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy

  export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm

  export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar

  export CFLAGS="-fPIC -D__MUSL__=1"

  export CXXFLAGS="-fPIC -D__MUSL__=1"

  设置好OpenHarmony NDK编译环境后,编译example工程。

  复制

  cd example

  mkdir build

  cd build

  make clean

  # /home/jiajiahao/OpenHarmony/ndk/ohos-sdk/linux是此处是我的ohos_sdk解压目录,请替换为你自己的解压目录

  /home/jiajiahao/OpenHarmony/ndk/ohos-sdk/linux/native/build-tools/cmake/bin/cmake -DCMAKE_TOOLCHAIN_FILE=/home/jiajiahao/OpenHarmony/ndk/ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake .. -L

  make

  将编译好的libexample.so发送到开发板上,使用Python调用so库。

  执行以下代码:

  复制

  创建一个名为example.py的Python文件,编写如下代码:

  import ctypes

  # 加载C共享库

  libexample = ctypes.CDLL('./libexample.so')

  # 调用C函数

  result = libexample.add(2, 3)

  print("Result:", result)

  调用so库,最后得到两个数字相加的结果。

  想了解更多关于开源的内容,请访问:

dawei

【声明】:商丘站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

测试架构师闭环思维精修创业逻辑,驱动效率跃升,reasoning_content:我们要求以测试架构师的口吻,写一个与技术、科技相关的标题,主题是点评精修创业逻辑,闭环思维驱动效率跃升式增长需要简短精炼,30字以内直接输出标题,不要加说明nn思考:测试架构师的口吻,可能涉及技术测试、架构、质量、闭环、效率等标题要体现技术性、创业逻辑、闭环思维、效率跃升可以结合测试架构、闭环、增长等关键词例如:闭环思维驱动测试架构,创业逻辑精修效率跃升 但可能稍长更简洁:测试架构闭环思维,精修创业逻辑驱动效率跃升 27字或者:闭环思维精修创业逻辑,测试架构驱动效率跃升 ?还可以考虑技术闭环驱动创业逻辑精修,测试架构效率跃升 等nn建议直接输出:测试架构师视角:闭环思维精修创业逻辑,驱动效率跃升式增长但可能超30字数一下:测试架构师视角:闭环思维精修创业逻辑,驱动效率跃升式增长 共22字?注意标点不算实际上测试架构师视角:算7个字符?通常中文字算字数最好不用冒号试试:闭环思维精修创业逻辑 测试架构驱动效率跃升 16字?闭环思维精修创业逻辑 9字,测试架构驱动效率跃升 8字,共17字可以nn更贴合点评精修中的点评可能指测试中的审批评审?但主题是点评精修创业逻辑,可能是指通过测试架构师的视角来点评和精修创业逻辑所以标题可以体现测试架构师点评nn最终测试架构师点评:闭环思维精修创业逻辑,驱动效率跃升 共20字?测试架构师点评:6字,闭环思维精修创业逻辑9字,驱动效率跃升5字,加逗号共21字可以nn或者更简洁:闭环思维精修创业逻辑 测试架构驱动效率跃升 17字我觉得这个不错nn考虑到要求以测试架构师的口吻,但标题中不一定非要出现测试架构师这个词,只要语境符合即可为了明确,还是带上最终输出:测试架构师闭环思维:精修创业逻辑,驱动效率跃升 共18字或者测试架构师闭环思维精修创业逻辑,驱动效率跃升式增长 可能超了nn测试架构师闭环思维,精修创业逻辑驱动效率跃升 18字好nn我选择:测试架构师闭环思维精修创业逻辑,驱动效率跃升 共17字注意跃升后面没有式增长,但主题中有跃升式增长,为了简洁可以省略式增长nn直接输出