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

CMakeLists.txt和Package.xml

CMakeLists.txt和Package.xml

CMakeLists.txt

总览

CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统,用于自动化编译过程。在 ROS 中,CMakeLists.txt 文件指定了如何编译代码和链接库,以及如何安装各种文件和程序。以下是 CMakeLists.txt 的详细解释:

基本结构

CMakeLists.txt 文件通常包含以下部分:

  1. CMake 最低版本要求:

    • 指定编译此包所需的最低 CMake 版本。
    cmake_minimum_required(VERSION 3.0.2)
    
  2. 项目名称:

    • 设置项目名称,通常与 ROS 包名称相同。
    project(my_ros_package)
    
  3. 查找依赖项:

    • 使用 find_package 命令查找编译包所需的依赖项。
    find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgs
    )
    
  4. 设置 catkin 包:

    • 使用 catkin_package 命令定义包的属性,如包含的库、依赖项和包含目录。
    catkin_package(#  INCLUDE_DIRS include#  LIBRARIES my_ros_package#  CATKIN_DEPENDS roscpp rospy std_msgs#  DEPENDS system_lib
    )
    
  5. 指定头文件的路径:

    • 通常用于包含库的头文件。
    include_directories(# include${catkin_INCLUDE_DIRS}
    )
    
  6. 添加可执行文件:

    • 使用 add_executable 命令添加每个节点的可执行文件。
    add_executable(${PROJECT_NAME}_node src/my_node.cpp)
    
  7. 添加依赖项:

    • 使用 add_dependencies 确保在编译节点之前生成所有消息和服务。
    add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
    
  8. 链接库:

    • 使用 target_link_libraries 将可执行文件与库链接起来。
    target_link_libraries(${PROJECT_NAME}_node${catkin_LIBRARIES}
    )
    
  9. 安装目标:

    • 指定如何安装各种文件和程序,以便它们可以在 ROS 环境中找到。
    install(TARGETS ${PROJECT_NAME}_nodeRUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )
    
  10. 其他指令:

    • 如设置测试、配置文件和其他特殊构建指令。
重要性

CMakeLists.txt 文件对于 ROS 包的构建至关重要。它确保了代码能够根据定义的规则和依赖关系正确编译。良好维护的 CMakeLists.txt 文件对于项目的可移植性和可维护性非常重要,尤其是当涉及到大型项目或多人协作时。

此外,通过 CMakeLists.txt,开发者可以细粒度地控制编译过程,比如定义不同的构建类型(如调试或发布),以及设置特定的编译器标志。

1. find_package指令

find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgs
)

这段代码是CMakeLists.txt文件中的一个部分,用于在ROS包中找到和包含依赖项。

  • find_package:这是CMake的一个命令,用于在构建过程中定位和使用外部项目或库。在这种情况下,它被用来找到catkin,这是ROS的一个构建系统。

  • catkin REQUIRED:指明catkin是必需的。如果CMake无法找到catkin,构建过程将停止。

  • COMPONENTS:后面跟着的是一个列表,指定了你的ROS包所依赖的其他ROS包或库。

    • roscpp:ROS的C++客户端库,用于写C++节点。
    • rospy:ROS的Python客户端库,用于写Python节点。
    • std_msgs:一个标准消息包,包含了一些常用的消息类型,如整数、浮点数、字符串等。

2. add_executable指令

add_executable(${PROJECT_NAME}_node src/atr_pkg_node.cpp)

这行代码用于添加一个可执行文件到你的ROS包。

  • add_executable:这是CMake的命令,用于创建一个可执行文件。在这里,它指定了可执行文件的名称和源代码文件。

  • ${PROJECT_NAME}_node:这是可执行文件的名称。${PROJECT_NAME}是一个变量,代表当前项目的名称。在这里,它被用来为可执行文件命名,通常后面会附加_node以表示这是一个ROS节点。

  • src/atr_pkg_node.cpp:这是可执行文件的源代码文件路径。这里假设你的源代码文件名为atr_pkg_node.cpp,位于src目录下。

3. add_dependencies指令

add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

这行代码为你的可执行文件添加构建依赖。

  • add_dependencies:这是CMake的命令,用于添加目标(在这种情况下是你的可执行文件)的依赖项。这确保了在构建你的节点之前,所有必需的头文件和服务消息都已经可用。

  • ${PROJECT_NAME}_node:这是你之前用add_executable创建的目标(即可执行文件)。

  • ${${PROJECT_NAME}_EXPORTED_TARGETS}${catkin_EXPORTED_TARGETS}:这些是CMake变量,包含了所有必须在你的节点之前构建的目标。这通常包括由消息生成的目标,确保在构建你的节点之前,所有自定义消息、服务或操作的头文件都已生成。

总的来说,这些代码片段在ROS包的CMake配置中起着非常重要的作用,确保了包的依赖项被正确地找到和包含,可执行文件被正确地构建,以及所有必要的依赖在构建过程中得到满足。

4.target_link_libraries指令

这段代码是ROS包中CMakeLists.txt文件的一部分,用于配置ROS包的构建过程。它具体涉及到链接库的设置。下面是对这段代码的详细解释:

target_link_libraries(${PROJECT_NAME}_node${catkin_LIBRARIES}
)
  • target_link_libraries:这是CMake的一个命令,用于指定可执行文件或库应该链接哪些库。在构建一个目标(如可执行文件或库)时,它告诉CMake将指定的库链接到这个目标上。

  • ${PROJECT_NAME}_node:这是之前使用add_executable命令创建的目标的名称。${PROJECT_NAME}是一个CMake变量,表示当前项目(即ROS包)的名称。通常情况下,${PROJECT_NAME}_node是可执行文件的名称,表示ROS包中的一个节点。

  • ${catkin_LIBRARIES}:这是一个CMake变量,包含了所有由find_package(catkin REQUIRED COMPONENTS ...)找到的catkin组件的库。在ROS中,catkin_LIBRARIES变量通常包含了所有必要的ROS相关库,如roscpp(ROS的C++库)和其他你在CMakeLists.txt中声明为依赖的库。

简而言之,这个target_link_libraries命令确保你的可执行文件(节点)在构建时,会链接到所有在find_package中指定的、及其依赖的ROS和其他库。这对于确保你的节点能够正确地访问和使用这些库的功能是必要的。

Package.xml

总览

package.xml 文件是 ROS (Robot Operating System) 包的一个关键组件,用于定义包的元数据和依赖关系。这个文件遵循特定的 XML 结构,并提供了关于包的重要信息,包括名称、版本、维护者、许可证和依赖项。以下是 package.xml 的详细解释:

基本结构

package.xml 文件通常包含以下基本部分:

  1. 包名称 (<name>): 包的唯一标识符。
  2. 版本 (<version>): 包的版本号。
  3. 描述 (<description>): 关于包的简短描述。
  4. 维护者 (<maintainer>): 负责维护包的人的联系信息。
  5. 许可证 (<license>): 指定包的开源许可证类型。
  6. 依赖关系:
    • <build_depend>: 构建时需要的依赖。
    • <build_export_depend>: 构建和运行时需要的依赖。
    • <exec_depend>: 运行时需要的依赖。
    • <depend>: 同时是构建和运行时需要的依赖。
示例

下面是一个 package.xml 的示例:

<?xml version="1.0"?>
<package format="2"><name>example_package</name><version>0.0.1</version><description>An example ROS package</description><maintainer email="maintainer@example.com">Your Name</maintainer><license>BSD</license><build_depend>roscpp</build_depend><build_depend>std_msgs</build_depend><build_export_depend>roscpp</build_export_depend><exec_depend>roscpp</exec_depend><exec_depend>std_msgs</exec_depend><export><!-- Other export tags go here --></export>
</package>

在这个示例中:

  • 包名为 example_package
  • 版本号设为 0.0.1
  • 提供了包的简短描述。
  • 维护者信息包括名字和电子邮件地址。
  • 指定了 BSD 许可证。
  • 包括了对 roscppstd_msgs 的依赖,这些在构建和运行时都是必需的。
重要性

package.xml 文件对于 ROS 包的构建和分发至关重要。它不仅提供了包的基本信息,还确定了包与其他包之间的关系。正确配置 package.xml 对于确保包的正确编译和运行是必要的。

当你从源代码编译 ROS 包或者使用 ROS 工具(如 rospackroslaunch)管理包时,package.xml 中的信息都会被使用。因此,维护一个准确、完整的 package.xml 文件对于任何 ROS 项目都是非常重要的。

  <buildtool_depend>catkin</buildtool_depend><build_depend>roscpp</build_depend><build_depend>rospy</build_depend><build_depend>std_msgs</build_depend><build_export_depend>roscpp</build_export_depend><build_export_depend>rospy</build_export_depend><build_export_depend>std_msgs</build_export_depend><exec_depend>roscpp</exec_depend><exec_depend>rospy</exec_depend><exec_depend>std_msgs</exec_depend>

这段代码是来自ROS包的package.xml文件,它定义了包的依赖项。package.xml文件在ROS中用于声明包的元数据和依赖关系,这对于包的构建和运行至关重要。下面是对这段代码的详细解释:

  • <buildtool_depend>catkin</buildtool_depend>:指定了一个构建工具依赖。这表示此包在构建过程中需要catkincatkin是ROS的构建系统,用于编译和配置ROS包。

  • <build_depend>:这些标签指定了构建依赖。构建依赖是指在编译时间需要的依赖项。在这个例子中,它包括了roscpprospystd_msgs

    • roscpp:ROS的C++客户端库,用于C++节点的开发。
    • rospy:ROS的Python客户端库,用于Python节点的开发。
    • std_msgs:包含标准消息类型的ROS包,这些消息在不同的ROS节点之间进行通信时常常用到。
  • <build_export_depend>:这些标签指定了构建导出依赖。这意味着当其他包依赖于此包时,这些依赖也将被考虑。在这个例子中,同样包括了roscpprospystd_msgs

  • <exec_depend>:这些标签指定了执行依赖,即在运行时需要的依赖项。在这个例子中,也包括了roscpprospystd_msgs。这意味着当此包的节点被运行时,这些依赖项需要被满足。

总的来说,这段代码详细描述了包的依赖关系,包括构建工具、构建时依赖、构建导出依赖以及执行时依赖。这些信息对于ROS的构建系统来说是必需的,以确保包可以正确地编译和运行。

后续增加,减少,更改依赖

在ROS(Robot Operating System)中更改依赖时,需要修改CMakeLists.txtpackage.xml两个文件。这些文件定义了ROS包的构建和运行时依赖。以下是详细的步骤说明:

修改package.xml

package.xml文件定义了包的元数据和依赖关系。当你需要添加、移除或更改依赖时,应相应地更新这个文件。

  1. 添加依赖

    • 使用<depend>标签添加新的依赖。这个标签表示包在编译和运行时都需要这个依赖。
    • 如果依赖仅在编译时需要,使用<build_depend>;如果仅在运行时需要,使用<exec_depend>
  2. 移除依赖

    • 直接删除相应的依赖标签。
  3. 修改依赖

    • 替换或更改现有的依赖标签。

例如,假设你需要添加一个名为sensor_msgs的依赖:

<depend>sensor_msgs</depend>

修改CMakeLists.txt

CMakeLists.txt控制着包的构建过程。你需要在这个文件中添加、移除或更改find_package()中的依赖项。

  1. 添加依赖

    • find_package(catkin REQUIRED COMPONENTS ...)部分添加新的依赖项。
  2. 移除依赖

    • find_package()中删除不再需要的依赖项。
  3. 修改依赖

    • 根据需要更改find_package()中的依赖项。

例如,添加sensor_msgs依赖:

find_package(catkin REQUIRED COMPONENTSroscppstd_msgssensor_msgs
)

重构建包

修改package.xmlCMakeLists.txt后,需要重新构建ROS包以应用这些更改:

  1. 在终端中,导航到你的catkin工作空间(通常是~/catkin_ws)。

  2. 运行catkin_make命令

    cd ~/catkin_ws
    catkin_make
    

这将重新构建你的包,包括任何新添加的依赖。

测试包

更改依赖后,建议进行适当的测试以确保包正常工作,并且新的依赖没有引入任何问题。

总结

通过适当地管理package.xmlCMakeLists.txt文件,你可以确保你的ROS包正确地包含了所有必要的依赖,这对于包的功能性、可移植性和维护性至关重要。

相关文章:

CMakeLists.txt和Package.xml

CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统&#xff0c;用于自动化编译过程。在 ROS 中&#xff0c;CMakeLists.txt 文件指定了如何编译代码和链…...

Debian常用命令详解

Debian常用命令详解 Debian是一个流行的Linux发行版&#xff0c;它以其稳定性、强大的包管理系统和丰富的软件仓库而著称。对于Debian用户来说&#xff0c;掌握一些常用的命令行工具和命令是日常系统管理和维护的基础。下面&#xff0c;我们将介绍一些Debian系统中常用的命令。…...

代码随想录算法训练营day29|491.递增子序列、46.全排列、47.全排列II

递增子序列 491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 非递减子序列&#xff0c;则答案的子集中&#xff0c;需保持下一个元素大于等于前一个元素的顺序&#xff0c;由于题目中指出&#xff0c;所有的子序列长度需大于等于2&#xff0c;考虑当条件为path.siz…...

【ARM Cache 与 MMU 系列文章 7.8 – ARMv8/v9 MMU Table 表分配原理及其代码实现 2】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU Table 表分配原理及其代码实现MMU Table 分配代码实现MMU Table 表分配原理及其代码实现 在做映射的时候所映射的地址范围最大只能是某一级 level table 中 entry 所能支持的最大…...

SAP PP学习笔记17 - MTS(Make-to-Stock) 按库存生产(策略70)

上几章讲了几种策略&#xff0c;策略10&#xff0c;11&#xff0c;30&#xff0c;40。 SAP PP学习笔记14 - MTS&#xff08;Make-to-Stock) 按库存生产&#xff08;策略10&#xff09;&#xff0c;以及生产计划的概要-CSDN博客 SAP PP学习笔记15 - MTS&#xff08;Make-to-St…...

网页音频提取在线工具有哪些 网页音频提取在线工具下载

别再到处去借会员账号啦。教你一招&#xff0c;无视版权和地区限制&#xff0c;直接下载网页中的音频文件。没有复杂的操作步骤&#xff0c;也不用学习任何代码。只要是网页中播放的音频文件&#xff0c;都可以把它下载到本地保存。 一、网页音频提取在线工具有哪些 市面上的…...

【ARM Cache 系列文章 2.1 -- Cache PoP 及 PoDP 介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 PoP 及 PoDPCache PoDPCache PoP应用和影响PoP 及 PoDP Cache PoDP 点对深度持久性(Point of Deep Persistence, PoDP)是内存系统中的一个点,在该点达到的任何写操作即使在系统供电…...

一文了解JVM面试篇(上)

Java内存区域 1、如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一 个进程,回收无效对象的内存用于将来的分配。 2、JVM 的主要组成…...

C#WPF控件Textbox绑定浮点型数据限制小数位方法

本文讲解C#WPF控件Textbox绑定浮点型数据限制小数位方法。 XAML中,使用StringFormat来格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…...

mysql引入表名称的注意事项

1、遇到问题 mapper中的文件是这样的 解析出来的sql是这样的 sql显示为&#xff1a;select * from ‘tableName’ 2、解决方法 mapper文件种使用${tableName}而不是#{tableName}...

C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍

文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归&#xff0c;需要使用栈来实现。将左右下标分别push到栈中。在栈为…...

学生成绩管理系统(大一大作业)

功能 实现添加&#xff0c;排序&#xff0c;修改&#xff0c;保存等功能 库函数 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<string.h> 头文件 #define functioncreate(major) void major##compare(mana mn){\int i,j,s…...

数据结构:模拟栈

数据结构&#xff1a;模拟栈 题目描述参考代码 题目描述 输入样例 10 push 5 query push 6 pop query pop empty push 4 query empty输出样例 5 5 YES 4 NO参考代码 #include <iostream>using namespace std;const int N 1000010;int m, x; int q[N]; string op; int…...

02-2.3.6 顺序表和链表的比较

喜欢《数据结构》部分笔记的小伙伴可以订阅专栏&#xff0c;今后还会不断更新。&#x1f9d1;‍&#x1f4bb; 此外&#xff0c;《程序员必备技能》专栏和《程序员必备工具》专栏&#xff08;该专栏暂未开设&#xff09;日后会逐步更新&#xff0c;感兴趣的小伙伴可以点一下订阅…...

C++ : 模板初阶

标题&#xff1a;C : 模板初阶 水墨不写bug 正文开始&#xff1a; C语言的问题 &#xff1a; 写不完的swap函数 在学习C语言时&#xff0c;我们有一个经常使用的函数swap函数&#xff0c;它可以将两个对象的值交换。 我们通常这样实现它&#xff1a; void swap(int t1,int t2)…...

FFA-Net:用于单图像去雾的特征融合注意力网络

摘要 论文链接&#xff1a;https://arxiv.org/pdf/1911.07559v2 在这篇论文中&#xff0c;我们提出了一种端到端的特征融合注意力网络&#xff08;FFA-Net&#xff09;来直接恢复无雾图像。FFA-Net架构由三个关键组件组成&#xff1a; 一种新颖的特征注意力&#xff08;FA&…...

网工内推 | 联通公司,云计算售前,AWS认证优先

01 联通数字科技有限公司 &#x1f537;招聘岗位&#xff1a;云计算售前工程师 &#x1f537;职责描述&#xff1a; 1.了解私有云&#xff0c;公有云&#xff0c;混合云等云计算技术知识&#xff0c;了解云计算行业现状及发展趋势。 2.承担区域项目售前工作支持&#xff0c;为…...

[Redis]Zset类型

Zset有序集合相对于字符串、列表、哈希、集合来说会有一些陌生。 它保留了集合不能有重复成员的特点&#xff0c;但与集合不同的是&#xff0c;有序集合中的每个元素都有一个唯一的浮点类型的分数&#xff08;score&#xff09;与之关联&#xff0c;着使得有序集合中的元素是可…...

【云原生】Kubernetes----Ingress对外服务

目录 引言 一、K8S对外方式 &#xff08;一&#xff09;NodePort 1.作用 2.弊端 3.示例 &#xff08;二&#xff09;externalIPs 1.作用 2.弊端 3.示例 &#xff08;三&#xff09;LoadBalancer 1.作用 2.弊端 &#xff08;四&#xff09;Ingress 二、Ingress的…...

项目管理之maven svn

管理jar包之间依赖关系 编译、打包、清理、测试等一系列构建工具 一、Maven的标志 1、每一个maven工程都有一个pom.xml maven项目坐标 <groupId>com.aaa</groupId>//项目路径 <artifactId>web</artifactId>项目名称 <version>0.0.1-SNAPS…...

Redis篇 list类型在Redis中的命令操作

list在redis基本的命令 一.基本命令1.lpush和range2.lpushx rpushx3.lpop rpop4.lindex linsert llen5.lrem6.ltrim lset7.blpop brpop 一.基本命令 list在redis中相当于数组或者顺序表. 1.lpush和range 2.lpushx rpushx 3.lpop rpop 4.lindex linsert llen 如果要插入的列表中…...

【C++课程学习】:类和对象(上)(类的基础详细讲解)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f35f;1.1类的引出&#xff1a; &#x1f35f;1.2类的结构&#xff1a; &#x1f35f;1.3类的…...

HTML 转义字符(escape characters)及其对应的符号(symbols)

以下是常见的 HTML 转义字符及其对应的符号&#xff0c;这些可以用于在 HTML 或 JSX 中避免解析错误和特殊字符的冲突&#xff1a; 空格 ( ): 或 引号: 单引号&#xff08;&#xff09;&#xff1a;&apos;、&lsquo;、、&rsquo;双引号&#xff08;"&#x…...

CPASSOC代码详解

加载环境 library("MASS") require(MASS) # Modern Applied Statistics with S&#xff0c;"S"指的是S语言&#xff0c;由贝尔实验室的约翰钱伯斯&#xff08;John Chambers&#xff09;等人开发。S语言是R语言的前身&#xff0c;许多R语言的语法和功能都…...

dirfuzz-web敏感目录文件扫描工具

dirfuzz介绍 dirfuzz是一款基于Python3的敏感目录文件扫描工具&#xff0c;借鉴了dirsearch的思路&#xff0c;扬长避短。在根据自身实战经验的基础上而编写的一款工具&#xff0c;经过断断续续几个月的测试、修改和完善。 项目地址&#xff1a;https://github.com/ssrc-c/di…...

计算机发展史 | 从起源到现代技术的演进

computer | Evolution from origins to modern technology 今天没有参考资料哈哈 PPT&#xff1a;&#xff08;评论区&#xff1f;&#xff09; 早期计算工具 算盘 -算盘是一种手动操作的计算辅助工具&#xff0c;起源于中国&#xff0c;迄今已有2600多年的历史&#xff0c;是…...

45-3 护网溯源 - 为什么要做溯源工作

官网:CVERC-国家计算机病毒应急处理中心 西工大遭网络攻击再曝细节!13名攻击者身份查明→ (baidu.com) 护网溯源是指通过技术手段追踪网络攻击的来源和行为,其重要性体现在以下几个方面: 安全防御:了解攻击源头可以帮助组织加强网络安全防御,及时采取措施防止攻击的再次…...

【JavaEE 进阶(二)】Spring MVC(下)

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多进阶知识 目录 1.前言2.响应2.1返回静态界面2.2返回数据2.3返回HTML代码 3.综合练习3.1计算器3.2用户登…...

光波长 深入程度

UV深入程度&#xff08;UVC&#xff0c; UVB&#xff0c; UVA&#xff09;https://mp.weixin.qq.com/s?__bizMzkwNTM0Njk3MA&mid2247483934&idx1&sn92d1ba67ead404e7714af11ec0526786&chksmc0f868ebf78fe1fd0610493e6f49a5d90835a20a829a900746906cda12f2fa12…...

MySQL数据库常见工具的基础使用_1

在上一篇文章中提到了对MySQL数据库进行操作的一些常见工具 mysqlcheck mysqlcheck是一个用于数据库表的检查&#xff0c;修复&#xff0c;分析和优化的一个客户端程序 分析的作用是查看表的关键字分布,能够让sql生成正确的执行计划(支持InnoDB,MyISAM,NDB)检查的作用是检查…...

医院做网站的意义/什么叫关键词举例

题目&#xff1a; 题解&#xff1a; 代码&#xff1a; #include<bits/stdc.h> #define reint register int using namespace std; struct nod {int w,t; //w表示做这件事需要的精力 &#xff0c;t是做事可以获得的信誉int b; //b用来记录这件事是第几个真香&#xff…...

医疗公司logo设计图片/关键词seo公司真实推荐

之前写了一篇博文&#xff0c;是一种画矩形的方法&#xff0c;但是今天介绍的方法比之前的要好一些&#xff0c;总结出来方便自己&#xff0c;方便需要的小伙伴们。。。。。。 直接上代码&#xff1a; 在头文件中写如下代码 protected:HICON m_hIcon;CPoint m_ptbegin;CPoint m…...

如何去掉wordpress版权信息/引流推广平台软件

创建定时任务使用plsql工具: 1、 1、创建任务执行的存储过程&#xff0c;如名称为YxtestJob&#xff0c;向测试表中插入数据 2、定时器对应的DBMS_Jobs文件夹,右键新建&#xff08;new&#xff09; 回到顶部3、创建任务 (1)、在what值中填写待执行的存储过程&#xff0c;多个可…...

上海缔客网站建设公司/找精准客户的app

nodejs服务器部署教程一nodejs服务器部署教程二&#xff0c;把vue项目部署到线上 本文以我个人的开源项目vueblog作为演示&#xff0c;让你把自己的项目能在服务器上跑起来 安装mongodb数据库 如何在ubuntu上安装mongodb数据库&#xff0c;其实官方文档写的很清楚啦 sudo ap…...

群晖 wordpress端口/seo快速排名案例

1、查询数据库版本&#xff1a; 查询数据库大版本号&#xff1a; Select * from v$version; 查询小版本号&#xff1a; Select id_code; 2、表空间相关信息查询 查询数据文件和联机日志文件信息 select b.tablespace_name, b.file_name, b.bytes/1024/1024 size_m from dba…...

海口新闻头条最新消息/seo短视频网页入口引流下载

2014-11-13 四 By youngsterxyf 概述 Yii框架将各种功能封装成组件&#xff0c;使用时按需配置加载&#xff0c;从而提高应用的性能。内置的组件又分为核心组件与非核心组件&#xff0c;核心组件是任何Web应用和Console应用都需要的。 此外&#xff0c;应用开发者还可以按照一定…...