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

makefile文件

简介:

自动化编译:只需要一个make命令,整个工程自动编译

提高编译效率:再次编译时,只编译修改的文件(查看时间戳,根据修改文件的时间判断文件是否被修改)

基本语法:

{

目标:依赖

命令

}

{

target... : prerequisites ...
command

}
target 也就是一个目标文件,可以是 Object File ,也可以是执行文件。还可以是一个标签( Label ),对于标签这种特性,在后续的“伪目标”章节中会有叙述。
prerequisites 就是,要生成那个 target 所需要的文件或是目标。
command 也就是 make 需要执行的命令。(任意的 Shell 命令)

例:

一步编译:.c——>exe

test:add.c sub.c test.cgcc add.c sub.c test.c -o test

两步编译:.c——>.o ——>exe

add.o:add.cgcc -c add.c -o add.o
sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c -o test.o
test:add.o sub.o test.ogcc add.o sub.o test.c -o test
注意:

1.makefile只识别第一个目标,也就是上图中的add.o

2.因此应修改为下图中的形式,将最终目标作为第一目标

3.会去找当前路径下第一目标的依赖文件,如果依赖文件不存在,就会去找下一个目标,直到第一目标的依赖全部得到

test:add.o sub.o test.ogcc add.o sub.o test.c -o test
add.o:add.cgcc -c add.c -o add.o
sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c -o test.o

4.make默认执行第一目标,直接执行其他目标格式为"make+目标名"

例:make clean

test:add.o sub.o test.ogcc add.o sub.o test.c -o test
add.o:add.cgcc -c add.c -o add.o
sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c -o test.o
clean:rm *.o

5.如果当前目录下有最新的clean文件,执行make clean时将会报错,因此修改如下图,通过建立伪目标方式(不是真正想要生成clean文件)

test:add.o sub.o test.ogcc add.o sub.o test.c -o test
add.o:add.cgcc -c add.c -o add.o
sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c sub.o test.o#伪目标
.PHONY:clean
clean:rm *.o

makefile的变量:

自定义变量:

x = a         变量在声明时需要给予初值(给变量x赋值a)
$(x) 或 ${x}         取值

例:

SRC=add.o sub.o test.otest:add.o sub.o test.ogcc $(SRC) -o test
add.o:add.cgcc -c add.c -o add.o
sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c sub.o test.o#伪目标
.PHONY:clean
clean:rm *.o

注意:

1.如果你要使用真实的 $ 字符,那么你需要用 $$ 来表示。

2.

SRC=add.o sub.o test.otest:add.o sub.o test.ogcc $(SRC) -o test

变量的赋值:

自动化变量:

此些符号表示变量名,代表了符合的文件(以及输出方式)

隐含变量:

此下变量名是专门为一个功能提供的。

makefile的条件判断:

ifeq:

使用方式:ifeq开头,endif结尾

ifeq($(ARCH),X86)
CC=gccelseCC=arm-none-linux-gcc
endif

含义:如果变量ARCH中的值为X86,执行CC=gcc操作,否则就执行CC=arm-none-linux-gcc操作

ifneq:

使用方式同ifeq,意思相反

ifdef:

使用方式ifdef开头,endif结尾

ifdef ARCH
CC=gccelseCC=arm-none-linux-gcc
endif

含义:如果变量ARCH被定义,执行CC=gcc,否则执行CC=arm-none-linux-gcc

ifndef:

使用方式同ifdef

makefile函数:

基本语法:

$(<function> <arguments>)
或是
${<function> <arguments>}

$(<函数名><参数1,参数2,参数3,.....>)

wildcard函数:

$(wildcard PATTERN)
功能:列出当前目录下所有符合模式“ PATTERN” 格式的文件名。
返回:空格分割的、存在当前目录下的所有符合模“ PATTERN” 的文件名。
说明:“ PATTERN” 使用 shell 可识别的通配符,包括“ ?” (单字
符)、“ *” (多字符)等。
示例: $(wildcard *.c) 返回值为当前目录下所有 .c 源文件列表。

示例:

SRC=$(wildcard *.c)all:echo $(SRC)

输出为当前路径下所有的.c文件

patsubst函数:

$(patsubst <pattern>,<replacement>,<text>)
名称:模式字符串替换函数。
功能:查找 <text> 中的单词(单词以“空格”、“ Tab” 或“回车”“换行”分隔)是否符合模式 <pattern> ,如果匹配的话,则以<replacement> 替换。

这里, <pattern> 可以包括通配符 % ,表示任意长度的字串。

如果 <replacement> 中也包含 % ,那么, <replacement>中的这个 % 将是 <pattern> 中的那个 % 所代表的字串。(可以用 \ 来转义,以 \% 来表示真实含义的 % 字符)
返回:函数返回被替换过后的字符串。

例:

SRC=$(wildcard *.c)
OBJ=$(patsubst %.c,%.o,$(SRC))all:echo $(OBJ)

含义:将路径下所有.c文件赋值到SRC中,再将SRC中的文件与是否符合.c后缀,如果符合,就使用.o后缀替换SRC中的文件,返回值赋值给OBJ

自定义函数:

需要使用系统提供的call函数

例:

含义:定义echo ”*****“的名字为MYFUN,使用call函数调用MYFUN函数

define MYFUNecho "*****"
endefall:$(call MYFUN)

含义:定义MYFUN函数,输出的参数是以call函数的参数

define MYFUNecho "*****"echo $(0)    //表示输出第一个参数echo $(1)    //表示输出第二个参数echo $(2)    //表示输出第三个参数
endefall:$(call MYFUN,10,20)    //第一个参数:MYFUN;第二个参数:10;第三个参数:20;

 注意:

1.依赖可以是0个也可以是多个,用空格隔开

2.命令前需要使用Tab键空开

3.使用"#"作为注释符

4.在终端make命令后也可以赋值

含义:执行make命令,并且给ARCH变量赋值X86

make ARCH=X86

5.如果函数名称正确,函数名将会变成黄色,函数与参数之间使用空格隔开,参数间使用逗号隔开

6.

相关命令:

echo:

使用方式:echo+数据

功能:将数据输出到终端

@:

在makefile文件的命令前加@,命令的名称将不会显示在终端上(仍会执行)

例:

SRC=add.o sub.o test.otest:add.o sub.o test.ogcc $(SRC) -o test
add.o:add.cgcc -c add.c -o add.oecho $*echo $@@echo $*@echo $@sub.o:sub.cgcc -c sub.c -o sub.o
test.o:test.cgcc -c test.c sub.o test.o#伪目标
.PHONY:clean
clean:rm *.o

输出如下图:

echo add.c
echo add
add.c
add

终端上只会显示自动化变量" * "表示的值,不会显示"echo"命令名称

gcc:

-E:预处理,生成.i文件

-S:编译,生成.s文件

-c:汇编,生成.o文件

-g:生成GDB调试信息

-I(大爱):+文件路径,链接其他路径下文件

-Wall:调试错误

相关文章:

makefile文件

简介&#xff1a; 自动化编译&#xff1a;只需要一个make命令&#xff0c;整个工程自动编译 提高编译效率&#xff1a;再次编译时&#xff0c;只编译修改的文件&#xff08;查看时间戳&#xff0c;根据修改文件的时间判断文件是否被修改&#xff09; 基本语法&#xff1a; …...

MybatisPlus使用LambdaQueryWrapper更新时 int默认值问题

问题&#xff1a; User user new User();user.setBalance(1000);QueryWrapper<User> queryWrapper new QueryWrapper<>();queryWrapper.eq("username","Jack");userMapper.update(user, queryWrapper);通过用户名&#xff0c;更新金额&…...

泷羽sec学习打卡-brupsuite7搭建IP炮台

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-IP炮台搭建 搭建炮台服务端安装zmap1、更新系统和安装基础依赖&#xff…...

WPF系列一:窗口设置无边框

WindowStyle 设置&#xff1a;WindowStyle"None"&#xff0c;窗口无法拖拽&#xff0c;但可纵向和横向拉伸 <Window x:Class"WPFDemo.MainWindow.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x&quo…...

《C++与 Armadillo:线性代数助力人工智能算法简化之路》

在人工智能领域&#xff0c;线性代数运算可谓是构建各类模型与算法的基石。从神经网络中的矩阵乘法、向量运算&#xff0c;到数据处理中的特征分解、奇异值分解等&#xff0c;无一不依赖高效且精准的线性代数计算。而 C作为一种强大且高效的编程语言&#xff0c;在人工智能开发…...

【新界面】基于卷积神经网络的垃圾分类(Matlab)

基于CNN的垃圾识别与分类GUI【新界面】 有需要可直接联系我&#xff0c;基本都在在线&#xff0c;能秒回&#xff01;可加我看演示视频&#xff0c;不懂可以远程教学 1.此项目设计包括两份完整的源代码&#xff0c;有GUI界面的代码和无GUI界面系统的代码。 &#xff08;以下部…...

阿尔茨海默症数据集,使用yolo,voc,coco格式对2013张原始图片进行标注,可识别轻微,中等和正常的症状

阿尔茨海默症数据集,使用yolo&#xff0c;voc&#xff0c;coco格式对2013张原始图片进行标注&#xff0c;可识别轻微&#xff0c;中等&#xff0c;严重和正常的症状 数据集分割 训练组100&#xff05; 2013图片 有效集&#xff05; 0图片 测试集&#xf…...

评估二分类模型性能之AUC-ROC 曲线

AUC-ROC 曲线 是评估二分类模型性能的重要工具。它结合了 受试者工作特性曲线 (Receiver Operating Characteristic, ROC) 和 曲线下面积 (Area Under the Curve, AUC)&#xff0c;全面衡量分类器在不同阈值下的表现。 概念解释 1. ROC 曲线 ROC 曲线展示了分类器在不同阈值下…...

睡岗和玩手机数据集,4653张原始图,支持YOLO,VOC XML,COCO JSON格式的标注

睡岗和玩手机数据集&#xff0c;4653张原始图&#xff0c;支持YOLO&#xff0c;VOC XML&#xff0c;COCO JSON格式的标注 数据集分割 训练组70&#xff05; 3257图片 有效集20&#xff05; 931图片 测试集10&#xff05; 465图片 预处理 没有采用任何预处…...

景联文科技:精准语音标注,驱动语音技术新发展

在人工智能迅速发展的今天&#xff0c;语音技术的应用已经渗透到我们生活的方方面面。从智能音箱、语音助手到自动语音识别系统&#xff0c;高质量的语音数据是这些应用成功的关键。景联文科技作为领先的AI数据服务提供商&#xff0c;专注于为客户提供高精度、高效的语音标注服…...

Linux 查看目录命令 ls 详细介绍

Linux 和 Unix 系统中 ls 命令是用于列出目录内容。用户可以查看指定目录下的文件和子目录&#xff0c;还可以获取有关这些文件和子目录的详细信息。 基本语法&#xff1a; ls [选项] [目录]如果不指定目录&#xff0c;ls 将列出当前工作目录下的内容。 01、-a 或 --all ls…...

Flux Tools 结构简析

Flux Tools 结构简析 BFL 这次一共发布了 Canny、Depth、Redux、Fill 四个 Tools 模型系列&#xff0c;分别对应我们熟悉的 ControlNets、Image Variation&#xff08;IP Adapter&#xff09;和 Inpainting 三种图片条件控制方法。虽然实现功能是相同的&#xff0c;但是其具体…...

从零开始:PHP基础教程系列-第13篇:构建简单的Web应用

从零开始&#xff1a;PHP基础教程系列 第13篇&#xff1a;构建简单的Web应用 在本篇文章中&#xff0c;我们将学习如何使用PHP构建一个简单的Web应用。这个应用将实现用户注册和登录功能&#xff0c;并使用PDO与MySQL数据库进行交互。我们将逐步实现这个应用的基本功能。 一…...

文件夹属性变0字节:全面解析与恢复指南

一、文件夹属性变0字节现象概述 在日常使用电脑的过程中&#xff0c;我们可能会遇到文件夹属性突然变为0字节的情况。这意味着文件夹中的文件列表或元数据被某种方式清空或损坏&#xff0c;导致系统无法正确读取文件夹的内容。当您尝试打开此类文件夹时&#xff0c;通常会收到…...

PDFMathTranslate 一个基于AI优秀的PDF论文翻译工具

PDFMathTranslate 是一个设想中的工具&#xff0c;旨在翻译PDF文档中的数学内容。以下是这个工具的主要特点和使用方法&#xff1a; 功能特点 数学公式识别&#xff1a;利用先进的OCR&#xff08;光学字符识别&#xff09;技术&#xff0c;精准识别PDF文档中的数学公式和文本…...

35. Three.js案例-创建带阴影的球体与平面

35. Three.js案例-创建带阴影的球体与平面 实现效果 知识点 WebGLRenderer WebGLRenderer 是Three.js中用于渲染场景的主要类之一&#xff0c;它负责将场景中的对象渲染到画布上。 构造器 new THREE.WebGLRenderer(parameters : Object) 参数类型描述parametersObject可选…...

【Linux】深入理解进程信号机制:信号的产生、捕获与阻塞

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 时间不语&#xff0c;却回答了所有问题 目录 &#x1f4da;前言 &#x1f4da;一、信号的本质 &#x1f4d6;1.异步通信 &#x1f4d6;2.信…...

Vue3.0使用JavaScript脚本实现Vue Router路由:页面跳转、获取URL参数

Vue 使用 Vue Router 路由系列文章: 《Vue使用Vue Router路由:开发单页应用》 《Vue使用Vue Router路由:通过URL传递与获取参数》 《Vue3.0使用JavaScript脚本实现Vue Router路由:页面跳转、获取URL参数》 1、路由基础 在单页 Web 应用中,整个项目只有一个 HTML 文件,不…...

2025山东科技大学考研专业课复习资料一览

[冲刺]2025年山东科技大学020200应用经济学《814经济学之西方经济学[宏观部分]》考研学霸狂刷870题[简答论述计算题]1小时前[强化]2025年山东科技大学085600材料与化工《817物理化学》考研强化检测5套卷22小时前[冲刺]2025年山东科技大学030100法学《704综合一[法理学、国际法学…...

lambda 表达式 闭包写法

lambda 表达式 1.用于 匿名委托函数表达 2.用于linq 查询表达 匿名方法表达 &#xff08;参数&#xff09;》{ 逻辑} 比如 &#xff08;x,y&#xff09;>{return xy;} 如果一个参数可不带&#xff08;&#xff09;&#xff0c;如果逻辑简单可以不{} 比如 x>x 如果没有参…...

什么是正则化?Regularization: The Stabilizer of Machine Learning Models(中英双语)

正则化&#xff1a;机器学习模型的稳定器 1. 什么是正则化&#xff1f; 正则化&#xff08;Regularization&#xff09;是一种在机器学习模型训练中&#xff0c;通过约束模型复杂性以防止过拟合的技术。 它的核心目标是让模型不仅在训练集上表现良好&#xff0c;还能在测试集上…...

【西门子PLC.博途】——面向对象编程及输入输出映射FC块

当我们做面向对象编程的时候&#xff0c;需要用到输入输出的映射。这样建立的变量就能够被复用&#xff0c;从而最大化利用了我们建立的udt对象。 下面就来讲讲映射是什么。 从本质上来说&#xff0c;映射就是拿实际物理对象对应程序虚拟对象&#xff0c;假设程序对象是I0.0&…...

CS61a.1 textbook1.2 编程要素

1.structure and interpretation of computer programs Python 内置了对各种常见编程活动的支持&#xff0c; 例如&#xff0c;操作文本、显示图形以及通过 互联网。Python 代码行 >>> from urllib.request import urlopen是一个 import 语句&#xff0c;用于加载用…...

计算机毕业设计Django+Tensorflow音乐推荐系统 音乐可视化 卷积神经网络CNN LSTM音乐情感分析 机器学习 深度学习 Flask

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

使用国内镜像网站在线下载安装Qt(解决官网慢的问题)——Qt

国内镜像网站 中国科学技术大学&#xff1a;http://mirrors.ustc.edu.cn/qtproject/清华大学&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/qt/北京理工大学&#xff1a;http://mirror.bit.edu.cn/qtproject/ 南京大学&#xff1a;https://mirror.nju.edu.cn/qt腾讯镜像&…...

乳腺癌多模态诊断解释框架:CNN + 可解释 AI 可视化

乳腺癌多模态诊断解释框架&#xff1a;CNN 可解释 AI 可视化 论文大纲理解1. 确认目标2. 分析过程&#xff08;目标-手段分析&#xff09;3. 实现步骤4. 效果展示 结构分析1. 层级结构分析叠加形态&#xff08;从基础到高级&#xff09;构成形态&#xff08;部分到整体&#x…...

MySQL篇之对MySQL进行参数优化,提高MySQL性能

1. MySQL参数优化说明 MySQL 参数调优是提高数据库性能的重要手段之一。通过调整 MySQL 的配置参数&#xff0c;可以优化查询速度、提升并发处理能力、减少资源消耗等。 MySQL 的性能优化涉及到多个方面&#xff0c;包括内存管理、磁盘 I/O、查询优化、连接管理、复制配置等。…...

Scratch节日 | 快乐圣诞节——用编程传递节日祝福! ✨

今天为大家推荐一款充满节日气氛的Scratch项目——《快乐圣诞节》&#xff01;这款圣诞主题动画贺卡项目不仅让小朋友们学习编程知识&#xff0c;还提供了一种用创意传递祝福的方式。通过编程打造星星闪烁的圣诞树&#xff0c;播放经典圣诞音乐&#xff0c;制作一张属于自己的节…...

android studio更改应用图片,和应用名字。

更改应用图标&#xff0c;和名字 先打开AndroidManifest.xml文件。 更改图片文件名字&#xff08; 右键-->构建-->重命名&#xff08;R&#xff09;&#xff09;...

PHP8.4下webman直接使用topthink/think-orm

环境信息 操作系统win11php 8.4.1webman-framework ^1.6.8MySQL 8.4.3topthink/think-orm ^3.0 说明 PHP8.3以下版本 直接使用webman提供的webman/think-orm更方便。 PHP 环境换为 8.4 使用webman/think-orm 报了个错&#xff1b;所以换topthink/think-orm&#xff0c;根据文…...

uniapp 微信小程序 功能入口

单行单独展示 效果图 html <view class"shopchoose flex jsb ac" click"routerTo(要跳转的页面)"><view class"flex ac"><image src"/static/dyd.png" mode"aspectFit" class"shopchooseimg"&g…...

Halcon 机器视觉案例 之 连接件测量

第一篇 机器视觉案例 之 连接件测量 文章目录 第一篇 机器视觉案例 之 连接件测量1.案例要求2.实现思路2.1 读取单张图片并创建图像模板2.2 画出圆和直线2.3 创建测量模型2.4 循环读取多张图片并查找图像中连接件位置2.5 根据偏移量补偿使得测量模型移动至指定位置 3.实现效果4…...

druid与pgsql结合踩坑记

最近项目里面突然出现一个怪问题&#xff0c;数据库是pgsql&#xff0c;jdbc连接池是alibaba开源的druid&#xff0c;idea里面直接启动没问题&#xff0c;打完包放在centos上和windows上cmd窗口都能直接用java -jar命令启动&#xff0c;但是放到国产信创系统上就是报错&#xf…...

Windows环境 (Ubuntu 24.04.1 LTS ) 国内镜像,用apt-get命令安装RabbitMQ,java代码样例

一、环境 Windows11 WSL(Ubuntu 24.04.1) 二、思路 1 用Windows中的Ubuntu安装RabbitMQ&#xff0c;贴近Linux的线上环境&#xff1b; 2 RabbitMQ用erlang语言编写的&#xff0c;先安装erlang的运行环境&#xff1b; 2 用Linux的apt-get命令安装&#xff0c;解决软件依赖…...

RabbitMQ的核心组件有哪些?

大家好&#xff0c;我是锋哥。今天分享关于【RabbitMQ的核心组件有哪些&#xff1f;】面试题。希望对大家有帮助&#xff1b; RabbitMQ的核心组件有哪些&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ是一个开源的消息代理&#xff08;Messag…...

mysql免安装版配置教程

一、将压缩包解压至你想要放置的文件夹中&#xff0c;注意&#xff1a;绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件&#xff0c;已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…...

ubuntu+ros新手笔记(三):21讲没讲到的MoveIt2

1 安装MoveIt2 安装参照在ROS2中&#xff0c;通过MoveIt2控制Gazebo中的自定义机械手 安装 MoveIt2可以选择自己编译源码安装&#xff0c;或者直接从二进制安装。 个人建议直接二进制安装&#xff0c;可以省很多事。 sudo apt install ros-humble-moveitmoveit-setup-assistan…...

Charles简单压力测试

01、接口请求次数&#xff0c;并发量&#xff0c;请求延迟时间均可配置 选中需要进行测试的接口&#xff0c;鼠标右键选中【repeat advance】 02、设置并发参数 下面的图中&#xff0c;选择了1个接口&#xff0c;每次迭代中1个接口同时请求&#xff0c;迭代1000次&#xff08…...

决策树的生成与剪枝

决策树的生成与剪枝 决策树的生成生成决策树的过程决策树的生成算法 决策树的剪枝决策树的损失函数决策树的剪枝算法 代码 决策树的生成 生成决策树的过程 为了方便分析描述&#xff0c;我们对上节课中的训练样本进行编号&#xff0c;每个样本加一个ID值&#xff0c;如图所示…...

对象克隆与单例模式的实现

一、引言 在 C 编程中&#xff0c;对象克隆和单例模式是两个非常重要的概念。对象克隆可以帮助我们快速创建具有相同状态的对象副本&#xff0c;而单例模式则可以确保一个类只有一个实例&#xff0c;并提供全局访问点。本文将详细介绍 C 中如何实现对象的克隆以及单例模式。 …...

在 Linux 系统中,让 apt 使用 HTTP 代理

在 Linux 系统中&#xff0c;要让 apt 使用 HTTP 代理&#xff0c;有几种方法可以实现&#xff1a; ### 1. 临时设置代理 你可以通过设置环境变量来临时为 apt 命令设置代理。这种方法不需要修改任何配置文件&#xff0c;只需在命令行中设置环境变量即可。例如&#xff1a; …...

中国气象局:2024年第二批“气象数据要素×”典型案例(附下载)

11月25日&#xff0c;中国气象局通报2024年第二批“气象数据要素”典型案例。此次遴选充分结合首届“数据要素”大赛获奖案例&#xff0c;旨在进一步号召各级气象部门充分学习借鉴先进经验和做法&#xff0c;持续推动高价值气象数据产品开发利用&#xff0c;挖掘气象数据要素应…...

Android绘图Path基于LinearGradient线性渐变,Kotlin(1)

Android绘图Path基于LinearGradient线性渐变&#xff0c;Kotlin&#xff08;1&#xff09; import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.LinearGradient import android.graphics.Paint import and…...

基础入门-APP应用微信小程序原生态开发H5+Vue技术WEB封装打包反编译抓包点

知识点&#xff1a; 1、基础入门-APP应用-开发架构安全问题 2、基础入门-小程序应用-开发架构安全问题 通用&#xff1a; 1、反编译-得到源码-源码提取资产&#xff08;泄漏的配置信息&#xff09;-安全测试 2、抓包-资产-安全测试 一、演示案例-移动App-开发架构-原生&H…...

vue+ts提交数据时不提交(剔除)某项数据

关键代码 // 假设这是原始要提交的数据数组 const dataArray [{areaConfId: ,areaName: ,cityInfo: [],provinceList: [],cityList: []} ];// 使用map方法遍历数组中的每个对象&#xff0c;通过解构赋值和对象展开运算符去除cityInfo字段 const newDataArray dataArray.map…...

乐凡信息智能安全管控方案:助力油气田行业安全管控多方位升级

我国油田地域广阔&#xff0c;分布着大量各种油井&#xff0c;油井开采设备的连续稳定运行是保证石油开采的首要条件。然而&#xff0c;由于油田多位于特殊地理环境中&#xff0c;因而实现油井之间的通信首要问题就是要克服地理环境所带来的限制&#xff0c;传统通信系统的建设…...

Jenkins搭建并与Harbor集成上传镜像

Jenkins介绍 Jenkins 是一个开源的自动化服务器&#xff0c;广泛用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;的实践中。它帮助开发人员自动化构建、测试和部署过程&#xff0c;从而提高开发效率、代码质量和项目交付速度。通过丰富的插件支持…...

FutureCompletableFuture实战

1. Callable&Future&FutureTask介绍 直接继承Thread或者实现Runnable接口都可以创建线程&#xff0c;但是这两种方法都有一个问题就是&#xff1a;没有返回值&#xff0c;也就是不能获取执行完的结果。因此java1.5就提供了Callable接口来实现这一场景&#xff0c;而Fu…...

Amazon与Shopee平台对比:跨境卖家如何选对平台打开市场?

在跨境电商领域&#xff0c;选择合适的平台对卖家能否成功打开市场至关重要。如今&#xff0c;Amazon和Shopee成为了众多卖家的热门选择。一个以全球化布局和高端市场著称&#xff0c;一个则专注东南亚新兴市场的潜力。两者各有优势&#xff0c;但也需要根据卖家的业务模式、目…...

【项目实战】redis实现websocket分布式消息推送服务

由于redis并非专业的MQ中间件&#xff0c;消息的防丢失策略并不完整&#xff0c;存在丢失消息的可能。该方案为在再pc web管理平台的右下角弹出&#xff0c;显示新接收到的消息数&#xff0c;哪怕没有收到这个通知&#xff0c;也可以自己在消息中心看看。所以对可靠性要求不高。…...