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

网站建设委托开发合同范本国内seo做最好的公司

网站建设委托开发合同范本,国内seo做最好的公司,在线制作非主流流光闪字 急切网,建立网站 英语怎么说CMake:检测python模块和包 导言项目结构CMakeLists.txt相关源码 导言 上一篇,我们基本了解了如何去检测python的解释器和python库。通常,代码是依赖于特定的python模块,无论是python工具、嵌入python的程序,还是扩展python的库。…

CMake:检测python模块和包

  • 导言
  • 项目结构
  • CMakeLists.txt
  • 相关源码

导言

上一篇,我们基本了解了如何去检测python的解释器和python库。通常,代码是依赖于特定的python模块,无论是python工具、嵌入python的程序,还是扩展python的库。例如,numpy包。依赖于python模块或包的项目中,确定满足对这些python模块的依赖非常重要。

项目结构

.
├── CMakeLists.txt
├── py3_pure_embedding.cpp
└── use_numpy.py

项目地址:

https://gitee.com/jiangli01/tutorials/tree/master/cmake-tutorial/chapter3/03

CMakeLists.txt

在这里插入图片描述

execute_process(COMMAND ${PYTHON_EXECUTABLE} "-c" "import re, numpy; print(re.compile('/__init__.py.*').sub('',numpy.__file__))"RESULT_VARIABLE numpy_statusOUTPUT_VARIABLE numpy_locationERROR_QUIETOUTPUT_STRIP_TRAILING_WHITESPACE
)

使用了CMakeexecute_process函数来运行一个python脚本。该脚本导入了renumpy模块,然后使用re.compile函数来替换numpy模块路径中的一个模式。RESULT_VARIABLE用于捕获python脚本执行的状态,而OUTPUT_VARIABLE用于捕获修改后的numpy模块文件的位置。通过使用ERROR_QUIET来抑制进程生成的任何错误,并且使用OUTPUT_STRIP_TRAILING_WHITESPACE来移除输出中的尾随空格。

if(NOT numpy_status)set(NumPy ${numpy_location} CACHE STRING "Location of NumPy")
endif()

如果numpy_status不为空,那么设置了一个名为NumPy的CMake缓存变量,其值为numpy_location,这个变量用于存储NumPy库的位置信息。这个操作允许在CMake配置过程中指定NumPy的位置,以便后续的构建过程可以使用它。如果numpy_status为空,则不进行任何操作。

execute_process(COMMAND ${PYTHON_EXECUTABLE} "-c" "import numpy; print(numpy.__version__)"OUTPUT_VARIABLE numpy_versionERROR_QUIETOUTPUT_STRIP_TRAILING_WHITESPACE
)

这段代码使用execute_process命令来执行一个python脚本。

  • ${PYTHON_EXECUTABLE} 是一个CMake变量,用于指定python可执行文件的路径。
  • -c 选项告诉python解释器后面紧跟着的字符串是要执行的python代码。
  • 在这个python代码中,首先导入了numpy库,然后使用print函数输出了numpy库的版本号。
  • OUTPUT_VARIABLE 选项用于捕获python代码的输出,即numpy库的版本号。
  • ERROR_QUIET 选项用于忽略可能的错误信息。
  • OUTPUT_STRIP_TRAILING_WHITESPACE 选项用于移除输出字符串末尾的空格。

通过这个操作,可以在CMake配置过程中获取并保存numpy库的版本号,以便后续的构建过程可以使用。

add_custom_command(OUTPUT${CMAKE_CURRENT_BINARY_DIR}/use_numpy.pyCOMMAND${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/use_numpy.py${CMAKE_CURRENT_BINARY_DIR}/use_numpy.pyDEPENDS${CMAKE_CURRENT_SOURCE_DIR}/use_numpy.py
)

使用 CMake 中的 add_custom_command 命令,用于定义自定义的构建步骤,以及生成相应的输出文件。

  • OUTPUT 指定了生成的输出文件,这里是 ${CMAKE_CURRENT_BINARY_DIR}/use_numpy.py
  • COMMAND 指定了生成输出文件所需要执行的命令,这里是将 ${CMAKE_CURRENT_SOURCE_DIR}/use_numpy.py 复制到 ${CMAKE_CURRENT_BINARY_DIR}/use_numpy.py
  • DEPENDS 列出了生成输出文件所依赖的文件,这里是 ${CMAKE_CURRENT_SOURCE_DIR}/use_numpy.py

这段代码的作用是在构建过程中,如果 ${CMAKE_CURRENT_SOURCE_DIR}/use_numpy.py 发生变化,就执行指定的命令来将该文件复制到构建目录 ${CMAKE_CURRENT_BINARY_DIR} 下的相同路径。这可以确保在构建过程中,始终使用最新的 use_numpy.py 文件。

target_sources(pure-embeddingPRIVATE ${CMAKE_CURRENT_BINARY_DIR}/use_numpy.py
)

CMake 的构建过程中为名为 pure-embedding 的目标(通常是一个可执行文件或库)指定了源文件。在这里,并没有直接添加 C++ 源代码,而是添加了一个 python 脚本文件 ${CMAKE_CURRENT_BINARY_DIR}/use_numpy.py

这意味着在构建 pure-embedding 目标时,CMake 会将 ${CMAKE_CURRENT_BINARY_DIR}/use_numpy.py 视为目标的源文件之一,并确保在构建过程中该文件已经生成。

相关源码

py3_pure_embedding.cpp
在这里插入图片描述
use_numpy.py
在这里插入图片描述
最后:希望大家都勇于向邪恶势力作斗争!!!

http://www.tj-hxxt.cn/news/57063.html

相关文章:

  • 郑州做网站齿轮semester是什么意思
  • 网站开发案例详解 源代码重庆seo网站收录优化
  • 找人做效果图那个网站关键词优化报价推荐
  • asp.netmvc 做网站seo视频教程百度网盘
  • 小九自助建站百度关键词搜索量排名
  • 国内做日化官方网站百度seo关键词排名技术
  • 企业为什么要建网站口碑营销例子
  • 网站建设企业公司网络广告的计费方式
  • c语言在线编程网站百度手机助手网页版
  • 使用vue做的网站网络营销与直播电商是干什么的
  • wordpress左侧悬浮导航菜单源码嘉兴seo报价
  • 连云港网站制作公司口碑好长沙官网网站推广优化
  • 深圳公司网站开发淘宝店铺怎么推广
  • 天元建设集团有限公司汇票信誉seo优化公司信
  • 苏州网站建设sz sogou排名轻松seo 网站
  • 商城网站网络公司seo和sem的区别是什么?
  • 金融网站开发文档西安网站seo
  • 做个简单的导航网站推广普通话心得体会
  • 莆田网站制作优秀软文范例200字
  • 幻影图片一键制作网站天津快速关键词排名
  • 镇江手机网站制作电脑系统优化软件
  • 网站制作网站制作公司咨询热线福州seo优化
  • 为什么招聘网站做不大上海百度分公司电话
  • 电商网站建设渠道墨猴seo排名公司
  • 网站建设品最近国家新闻
  • 网站制作免费seo的基础优化
  • 展示型网站解决方案如何优化培训体系
  • 如何做优秀的游戏视频网站最新新闻热点事件2024
  • 哪里有做网站公司优化大师免费版
  • 网站建设的目的和意义昆山网站制作公司