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

四种编译方式(make、cmake、configure、autogen.sh)

文章目录

    • 一、make
      • 特征
      • 编译步骤(make)
      • 样例
      • 编译
    • 二、cmake
      • 特征
      • 编译步骤(cmake --> make)
      • 样例
      • 编译
    • 三、configure
      • 特征
      • 编译步骤(./configure --> make)
      • 样例
      • 编译
    • 四、autogen.sh
      • 特征
      • 编译步骤(./autogen.sh --> ./configure --> make)
      • 样例
      • 编译
    • 总结

一、make

特征

需要有 Makefile 文件

编译步骤(make)

make

样例

https://github.com/wkz/phytool

编译

liyongjun@box:~/project/c/phytool (master)$ ls
LICENSE  Makefile  mv6tool.8  phytool.8  phytool.c  phytool.h  print_mv6.c  print_phy.c  README.md
liyongjun@box:~/project/c/phytool (master)$ makeCC      phytool.oCC      print_phy.oCC      print_mv6.oCC      phytool
liyongjun@box:~/project/c/phytool (master)$ ls
LICENSE  Makefile  mv6tool.8  phytool  phytool.8  phytool.c  phytool.h  phytool.o  print_mv6.c  print_mv6.o  print_phy.c  print_phy.o  README.md

二、cmake

特征

需要有 CMakeLists.txt 文件

编译步骤(cmake --> make)

mkdir _build
cd _build/
cmake …/
make

样例

https://github.com/PieVo/mdio-tool

liyongjun@box:~/project/c/mdio-tool$ ls
CMakeLists.txt  LICENSE  mdio-tool.c  mii.h  README.md

编译

liyongjun@box:~/project/c/mdio-tool$ mkdir _build
liyongjun@box:~/project/c/mdio-tool$ cd _build/
liyongjun@box:~/project/c/mdio-tool/_build$ cmake ../
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/liyongjun/project/c/mdio-tool/_build
liyongjun@box:~/project/c/mdio-tool/_build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  Makefile
liyongjun@box:~/project/c/mdio-tool/_build$ make
Scanning dependencies of target mdio-tool
[ 50%] Building C object CMakeFiles/mdio-tool.dir/mdio-tool.c.o
[100%] Linking C executable mdio-tool
[100%] Built target mdio-tool
liyongjun@box:~/project/c/mdio-tool/_build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  Makefile  mdio-tool

三、configure

特征

需要有 configure 文件

编译步骤(./configure --> make)

./configure
make

样例

https://github.com/Distrotech/ethtool

编译

liyongjun@box:~/project/c/tmp/ethtool$ ./configure 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking whether gcc needs -traditional... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking for ANSI C header files... (cached) yes
checking for socket... yes
checking for strtol... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ethtool.spec
config.status: creating ethtool-config.h
config.status: executing depfiles commands
liyongjun@box:~/project/c/tmp/ethtool$ ls
aclocal.m4     configure     ethtool.8            ethtool-util.h  Makefile.am  README
amd8111e.c     configure.ac  ethtool.c            fec_8xx.c       Makefile.in  realtek.c
AUTHORS        COPYING       ethtool-config.h     ibm_emac.c      marvell.c    smsc911x.c
autogen.sh     de2104x.c     ethtool-config.h.in  INSTALL         missing      stamp-h1
ChangeLog      depcomp       ethtool-copy.h       install-sh      natsemi.c    tg3.c
config.log     e1000.c       ethtool.spec         ixgb.c          NEWS         vioc.c
config.status  e100.c        ethtool.spec.in      Makefile        pcnet32.c
liyongjun@box:~/project/c/tmp/ethtool$ make
make  all-am
make[1]: 进入目录“/home/liyongjun/project/c/tmp/ethtool”
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT ethtool.o -MD -MP -MF .deps/ethtool.Tpo -c -o ethtool.o ethtool.c
ethtool.c: In function ‘dump_regs’:
ethtool.c:1041:3: warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]1041 |   fread(regs->data, regs->len, 1, f);|   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/ethtool.Tpo .deps/ethtool.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT amd8111e.o -MD -MP -MF .deps/amd8111e.Tpo -c -o amd8111e.o amd8111e.c
mv -f .deps/amd8111e.Tpo .deps/amd8111e.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT de2104x.o -MD -MP -MF .deps/de2104x.Tpo -c -o de2104x.o de2104x.c
mv -f .deps/de2104x.Tpo .deps/de2104x.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT e100.o -MD -MP -MF .deps/e100.Tpo -c -o e100.o e100.c
mv -f .deps/e100.Tpo .deps/e100.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT e1000.o -MD -MP -MF .deps/e1000.Tpo -c -o e1000.o e1000.c
mv -f .deps/e1000.Tpo .deps/e1000.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT fec_8xx.o -MD -MP -MF .deps/fec_8xx.Tpo -c -o fec_8xx.o fec_8xx.c
mv -f .deps/fec_8xx.Tpo .deps/fec_8xx.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT ibm_emac.o -MD -MP -MF .deps/ibm_emac.Tpo -c -o ibm_emac.o ibm_emac.c
mv -f .deps/ibm_emac.Tpo .deps/ibm_emac.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT ixgb.o -MD -MP -MF .deps/ixgb.Tpo -c -o ixgb.o ixgb.c
mv -f .deps/ixgb.Tpo .deps/ixgb.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT natsemi.o -MD -MP -MF .deps/natsemi.Tpo -c -o natsemi.o natsemi.c
mv -f .deps/natsemi.Tpo .deps/natsemi.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT pcnet32.o -MD -MP -MF .deps/pcnet32.Tpo -c -o pcnet32.o pcnet32.c
mv -f .deps/pcnet32.Tpo .deps/pcnet32.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT realtek.o -MD -MP -MF .deps/realtek.Tpo -c -o realtek.o realtek.c
mv -f .deps/realtek.Tpo .deps/realtek.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT tg3.o -MD -MP -MF .deps/tg3.Tpo -c -o tg3.o tg3.c
mv -f .deps/tg3.Tpo .deps/tg3.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT marvell.o -MD -MP -MF .deps/marvell.Tpo -c -o marvell.o marvell.c
mv -f .deps/marvell.Tpo .deps/marvell.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT vioc.o -MD -MP -MF .deps/vioc.Tpo -c -o vioc.o vioc.c
mv -f .deps/vioc.Tpo .deps/vioc.Po
gcc -DHAVE_CONFIG_H -I.    -Wall -g -O2 -MT smsc911x.o -MD -MP -MF .deps/smsc911x.Tpo -c -o smsc911x.o smsc911x.c
mv -f .deps/smsc911x.Tpo .deps/smsc911x.Po
gcc -Wall -g -O2   -o ethtool ethtool.o amd8111e.o de2104x.o e100.o e1000.o fec_8xx.o ibm_emac.o ixgb.o natsemi.o pcnet32.o realtek.o tg3.o marvell.o vioc.o smsc911x.o  
make[1]: 离开目录“/home/liyongjun/project/c/tmp/ethtool”
liyongjun@box:~/project/c/tmp/ethtool$ ls
aclocal.m4     COPYING    ethtool.c            ibm_emac.c   marvell.o  smsc911x.c
amd8111e.c     de2104x.c  ethtool-config.h     ibm_emac.o   missing    smsc911x.o
amd8111e.o     de2104x.o  ethtool-config.h.in  INSTALL      natsemi.c  stamp-h1
AUTHORS        depcomp    ethtool-copy.h       install-sh   natsemi.o  tg3.c
autogen.sh     e1000.c    ethtool.o            ixgb.c       NEWS       tg3.o
ChangeLog      e1000.o    ethtool.spec         ixgb.o       pcnet32.c  vioc.c
config.log     e100.c     ethtool.spec.in      Makefile     pcnet32.o  vioc.o
config.status  e100.o     ethtool-util.h       Makefile.am  README
configure      ethtool    fec_8xx.c            Makefile.in  realtek.c
configure.ac   ethtool.8  fec_8xx.o            marvell.c    realtek.o

四、autogen.sh

特征

需要有 autogen.sh 文件

编译步骤(./autogen.sh --> ./configure --> make)

./autogen.sh
./configure
make

样例

https://github.com/cyassl/cyassl

编译

liyongjun@box:~/project/c/tmp/cyassl-master$ ls
AUTHORS               cyassl-iphone.xcodeproj  lib                 README.md
autogen.sh            cyassl-ntru.sln          LICENSING           rpm
certs                 cyassl-ntru.vcproj       m4                  src
ChangeLog             cyassl.sln               Makefile.am         sslSniffer
client-test.sh        cyassl.vcproj            mcapi               stamp-h.in
commit-tests.sh       cyassl.vcxproj           mplabx              support
configure.ac          doc                      mqx                 swig
COPYING               examples                 NEWS                tests
ctaocrypt             fips-check.sh            pre-commit.sh       testsuite
cyassl                gencertbuf.pl            pull_to_vagrant.sh  tirtos
cyassl64.sln          IDE                      quit                Vagrantfile
cyassl-ios.xcodeproj  input                    README              valgrind-error.sh
liyongjun@box:~/project/c/tmp/cyassl-master$ 
liyongjun@box:~/project/c/tmp/cyassl-master$ ./autogen.sh 
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: creating directory build-aux
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-aux'.
libtoolize: copying file 'build-aux/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:53: installing 'build-aux/compile'
configure.ac:13: installing 'build-aux/config.guess'
configure.ac:13: installing 'build-aux/config.sub'
configure.ac:16: installing 'build-aux/install-sh'
configure.ac:16: installing 'build-aux/missing'
Makefile.am: installing 'build-aux/depcomp'
parallel-tests: installing 'build-aux/test-driver'
autoreconf: Leaving directory `.'
liyongjun@box:~/project/c/tmp/cyassl-master$ ls
aclocal.m4       cyassl                   input               README.md
AUTHORS          cyassl64.sln             lib                 rpm
autogen.sh       cyassl-ios.xcodeproj     LICENSING           src
autom4te.cache   cyassl-iphone.xcodeproj  m4                  sslSniffer
build-aux        cyassl-ntru.sln          Makefile.am         stamp-h.in
certs            cyassl-ntru.vcproj       Makefile.in         support
ChangeLog        cyassl.sln               mcapi               swig
client-test.sh   cyassl.vcproj            mplabx              tests
commit-tests.sh  cyassl.vcxproj           mqx                 testsuite
config.in        doc                      NEWS                tirtos
configure        examples                 pre-commit.sh       Vagrantfile
configure.ac     fips-check.sh            pull_to_vagrant.sh  valgrind-error.sh
COPYING          gencertbuf.pl            quit
ctaocrypt        IDE                      README
liyongjun@box:~/project/c/tmp/cyassl-master$ ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking how to print strings... printf
checking whether make supports the include directive... yes (GNU style)
checking for 

相关文章:

四种编译方式(make、cmake、configure、autogen.sh)

文章目录 一、make特征编译步骤(make)样例编译二、cmake特征编译步骤(cmake --> make)样例编译三、configure特征编译步骤(./configure --> make)样例编译四、autogen.sh特征编译步骤(./autogen.sh --> ./configure --> make)样例编译总结一、make 特征 …...

Cursor 实战技巧:好用的提示词插件Cursor Rules

你好啊,见字如面。感谢阅读,期待我们下一次的相遇。 最近在小红书发现了有人分享这款Cursor提示词的插件,下面给各位分享下使用教程。简单来说Cursor Rules就是可以为每一个我们自己的项目去配置一个系统级别的提示词,这样在我们…...

mysql事务及隔离机制

mysql总结 mysql事务特性: 原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability) 并发访问数据库造成的问题: 脏读:读到…...

《护网行动与数字时代:如何应对日益复杂的网络威胁?》

什么是护网 1.什么是护网行动 护网行动是由公安部牵头组织的网络安全攻防演练活动,旨在评估和提升企事业单位的网络安全防护能力。 具体来说,护网行动通过模拟真实的网络攻击场景,组织攻防双方进行对抗演练,以检测企事业单位网…...

1月9日星期四今日早报简报微语报早读

1月9日星期四,农历腊月初十,早报#微语早读。 1、上海排查47家“俄罗斯商品馆”:个别店铺被责令停业,立案调查; 2、西藏定日县已转移受灾群众4.65万人,检测到余震646次; 3、国家发改委&#x…...

科大讯飞前端面试题及参考答案 (下)

除了 echarts 还了解其它画图工具吗? 除了 Echarts,还有不少优秀的画图工具可供选择使用。 Highcharts:它是一款功能强大且应用广泛的图表绘制工具,支持多种常见的图表类型,像柱状图、折线图、饼图、散点图等,同时也能创建较为复杂的图表,比如仪表盘图表、极坐标图等。H…...

linux创建服务,实现程序异常退出自启

以启动java程序进行示例,其他程序也可按照该方式进行配置 [Unit] DescriptionMy Java Service Afternetwork.target[Service] WorkingDirectory/opt/myapp # 设置你的 jar 文件所在目录 ExecStart/usr/bin/java -jar myapp.jar # 替换为你的 jar 启动命令 Restartalways Re…...

linux-28 文本管理(一)文本查看,cat,tac,more,less,head,tail

之前提到过linux的几个重要哲学思想,使用纯文本文件保存软件的配置信息是其中之一,所以大多数情况下,我们对整个系统的操作,都是通过编辑它的配置文件来完成,那也就意味着,处理文本文件是我们作为系统管理员…...

Springboot3巧妙运用拦截器阻断xss攻击

Springboot3巧妙运用拦截器阻断xss攻击 什么是xss跨站脚本攻击类型简单示例解决方法拦截器代码使用demo 什么是xss 人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets&#xff…...

leetcode 2551. 将珠子放入背包中

题目如下 数据范围 示例 题目的意思是将一个长度为n的数组weight(简称w)分成k个小数组,同时计算这些小数组的边界和。 设i (0 < i < n - 1) 首先我们假设已经找到最大分数序列即划分的小数组最优 令 j1,j2,j3.....jk为这些小数组的左端点(不包括第一个小数组)。 则有…...

【Spring】SpringBoot整合ShardingSphere并实现多线程分批插入10000条数据(进行分库分表操作)。

??个人主页&#xff1a;哈__ 期待您的关注 目录 一、ShardingSphere简介 ?1.Sharding-JDBC 2.Sharding-Proxy? 3.Sharding-Sidecar&#xff08;TBD&#xff09;? 二、为什么用到ShardingSphere? 三、数据分片 四、SpringBoot整合ShardingSphere 1.创建我们的数据…...

Python中的ast.literal_eval:安全地解析字符串为Python对象

Python中的ast.literal_eval&#xff1a;安全地解析字符串为Python对象 什么是ast.literal_eval&#xff1f;为什么说它是“安全”的&#xff1f; 如何使用ast.literal_eval&#xff1f;示例1&#xff1a;将字符串转换为列表示例2&#xff1a;将字符串转换为字典示例3&#xff…...

前端用json-server来Mock后端返回的数据处理

<html><body><div class"login-container"><h2>登录</h2><div class"login-form"><div class"form-group"><input type"text" id"username" placeholder"请输入用户名&q…...

【linux】文件与目录命令 - mv

文章目录 1. 基本用法2. 常用参数3. 用法举例4. 注意事项 mv 命令用于移动或重命名文件和目录&#xff0c;是 Linux 系统中管理文件的重要工具之一。它既能移动文件到指定路径&#xff0c;也能重命名文件或目录。 1. 基本用法 语法&#xff1a; mv [选项] 源文件 目标文件 mv…...

OSPF - LSA对照表

LSA的三要素&#xff0c;如何唯一表示一条LSA  Type&#xff1a;表示是几类的LSA  Link-id&#xff1a;这个比较特殊&#xff0c;不同的LSA的Link-ID不同  Advertising router&#xff1a;谁产生的LSA 常用的就是1、2、3、4、5、7型LSA 点击蓝字跳转LSA详细介绍(持续更新中…...

Mongodb基础sqL

------------------------------------------数据库------------------------------ (2).查看所有数据库 show dbs (3).选择数据库&#xff0c;如果不存在则隐式创建这个数据库 use 数据库名 ------------------------------------------集合------------------------------ …...

uniapp开发u-icon图标不显示问题

uniapp开发图标用u-icon不显示&#xff0c;换成uv-icon就可以了 插件市场从这里下载&#xff1a;uv-ui 破釜沉舟之兼容vue32、app、h5、小程序等多端&#xff0c;灵活导入&#xff0c;利剑出击 - DCloud 插件市场 组件库看这个&#xff1a;介绍 | 我的资料管理-uv-ui 是全面兼…...

宁德时代2025年Verify入职测评语言理解及数字推理真题SHL题库汇总、考情分析

宁德时代社招Verify入职测评对薪酬有着重要影响&#xff0c;其规定正确率达到80%才能顺利通过测评。这体现了公司对人才专业素养与能力的严格要求&#xff0c;旨在筛选出真正符合岗位需求的优秀人才。测评内容涵盖了专业知识、技能运用、逻辑思维等多方面&#xff0c;只有综合能…...

Spring Data Elasticsearch简介

一、Spring Data Elasticsearch简介 1 SpringData ElasticSearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎。它底层封装了Lucene框架,可以提供分布式多用户的全文搜索服务。 Spring Data ElasticSearch是SpringData技术对ElasticSearch原生API封装之后的产物,它通…...

即插即用,无缝集成各种模型,港科大蚂蚁等发布Edicho:图像编辑一致性最新成果!

文章链接&#xff1a;https://arxiv.org/pdf/2412.21079 项目链接&#xff1a;https://ezioby.github.io/edicho/ 亮点直击 显式对应性引导一致性编辑&#xff1a;通过将显式图像对应性融入扩散模型的去噪过程&#xff0c;改进自注意力机制与分类器自由引导&#xff08;CFG&…...

鸿蒙开发(29)弹性布局 (Flex)

概述 弹性布局&#xff08;Flex&#xff09;提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。常用于页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。 容器默认存在主轴与交叉轴&#xff0c;子元素默认沿主轴排列&#xff0c;子元素在主轴方…...

华为 Sensor 省电策略调研

华为EMUI 9.0.0.187&#xff08;C00E57R1P15&#xff09; 无该功能 华为EMUI 9.1.0.321&#xff08;C00E320R1P1&#xff09; 之后有sensor管控 一、华为 Sensor 省电策略 1. Sensor 类别只配置非唤醒类Sensor 2. 手机静止情况&#xff0c;应用不可见时达到1分钟&#xff0…...

Kotlin语言的网络编程

Kotlin语言的网络编程 Kotlin作为一种现代的编程语言&#xff0c;其简洁、安全和高效的特性使得在开发各种应用时得到广泛认可。尤其是在网络编程方面&#xff0c;Kotlin凭借其与Java的高度兼容性以及丰富的库支持&#xff0c;使得网络操作变得更加简单易用。本文将详细探讨Ko…...

redis:安装部署、升级以及失败回退

安装部署 一、准备工作 1. 检查系统要求 确保你的服务器满足 Redis 的基本要求: 操作系统:支持的 Linux 发行版(如 Ubuntu, CentOS)内存:至少 4GB(根据实际应用需求调整)CPU:单核或多核 CPU磁盘空间:足够的磁盘空间用于数据存储和日志记录2. 更新系统软件包 在开始…...

3. ML机器学习

1.人工智能与机器学习的关系 机器学习是人工智能的一个重要分支&#xff0c;是人工智能的一个子集。它无需显式编程&#xff0c;而是通过数据和算法使机器能够自动学习和改进&#xff0c;从而实现智能行为。机器学习依赖于算法来识别数据中的模式&#xff0c;并通过这些模式做出…...

在高德地图上加载3DTilesLayer图层模型/天地瓦片

1. 引入必要的库 Three.js&#xff1a;一个用于创建和显示3D图形的JavaScript库。vuemap/three-layer&#xff1a;一个Vue插件&#xff0c;它允许你在高德地图中添加Three.js图层。vuemap/layer-3dtiles&#xff1a;一个用于处理3D Tiles格式数据的Vue插件&#xff0c;可以用来…...

用户使用LLM模型都在干什么?

Anthropic 对用户与 Claude 3.5 Sonnet 的大量匿名对话展开分析&#xff0c;主要发现及相关情况如下&#xff1a; 使用用途分布 软件开发主导&#xff1a;在各类使用场景中&#xff0c;软件开发占比最高&#xff0c;其中编码占 Claude 对话的 15% - 25%&#xff0c;网页和移动应…...

2 抽象工厂(Abstract Factory)模式

抽象工厂模式 1.1 分类 &#xff08;对象&#xff09;创建型 1.2 提出问题 家具店里有沙发、椅子、茶几等产品。产品有不同风格&#xff0c;如现代、北欧、工业。希望确保客户收到的产品风格统一&#xff0c;并可以方便地添加新产品和风格。 1.3 解决方案 提供一个创建一…...

数据结构-串

串的实现 在C语言中所使用的字符串就是串的数据类型的一种。 串的存储结构 定长顺序存储表示 类似于线性表的顺序存储结构&#xff0c;用一组连续的存储单元存储串值的字符序列。 #define MAXLEN 255 //预定义最大串长为255 ​ typedef struct SString {char ch[MAXLEN]; …...

C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序

1 图的广度优先遍历 图的广度优先遍历&#xff08;或搜索&#xff09;类似于树的广度优先遍历&#xff08;参见本文的方法2&#xff09;。这里唯一需要注意的是&#xff0c;与树不同&#xff0c;图可能包含循环&#xff0c;因此我们可能再次来到同一个节点。为了避免多次处理节…...

使用ElasticSearch查询

从一个query body开始 {"query": {"bool": {"disable_coord": true,"must": [{"match": {"enabled": "1"}},{"range": {"effectTime": {"lt": "2017-06-13 13:33:…...

PyCharm+RobotFramework框架实现UDS自动化测试——(一)python-can 库的安装与环境配置

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者&#xff0c;时光不负有心人。 文章目录 1. 概述2.安装 python-can 库—基于pycharm在对应的工程下3. 在任意盘中安装环境4. 导入 can 模块语法5. 配置 CAN 接口6.CANoe设备连接语法 1. 概述 本专栏主…...

C# 值类型和引用类型详解

简介 在 C# 中&#xff0c;值类型和引用类型是两个基础的数据类型类别&#xff0c;它们的主要区别在于 存储位置 和 赋值方式。 值类型 值类型存储的是数据本身&#xff0c;分配在 栈 (Stack) 中。当一个值类型变量被赋值给另一个变量时&#xff0c;会复制值。 值类型的特点…...

计算机网络 —— 网络编程(TCP)

计算机网络 —— 网络编程&#xff08;TCP&#xff09; TCP和UDP的区别TCP (Transmission Control Protocol)UDP (User Datagram Protocol) 前期准备listen &#xff08;服务端&#xff09;函数原型返回值使用示例注意事项 accpect &#xff08;服务端&#xff09;函数原型返回…...

[Unity Shader] Shader基础光照3:环境光与自发光

在Unity中,光照是场景渲染的关键组成部分。正确使用环境光和自发光能够大大提高场景的真实感和视觉效果。本篇文章将详细介绍Unity中的环境光和自发光的基本概念,以及如何在编辑器和Shader中进行操作和实现。 1. 环境光(Ambient Light) 1.1 环境光的定义 环境光是场景中…...

云原生安全风险分析

一、什么是云原生安全 云原生安全包含两层含义&#xff1a; 面向云原生环境的安全具有云原生特征的安全 0x1&#xff1a;面向云原生环境的安全 面向云原生环境的安全的目标是防护云原生环境中基础设施、编排系统和微服务等系统的安全。 这类安全机制不一定具备云原生的特性…...

Redis 安装与配置指南

Redis 安装与配置指南 目录 安装说明 Linux 安装 Redis 3.0 压缩包上传服务器编译和安装修改配置启动 Redis关闭 Redis 卸载 RedisRedis 集群配置 Master 主库配置启动 Master 节点的 Redis 和 Sentinel客户登录验证Slave 从库配置查看集群数据验证 安装说明 Linux 安装 R…...

C语言Day13(c程序设计小红书+pta)

目录 &#xff08;一&#xff09;用函数调用实现&#xff0c;把最小的数字放在最前面&#xff0c;把最大的放在最后边 &#xff08;二&#xff09;使数字向后移m位 &#xff08;三&#xff09;用户自定义数据类型&#xff1a; &#xff08;四&#xff09;候选人计票数 &am…...

C++二十三种设计模式之迭代器模式

C二十三种设计模式之迭代器模式 一、组成二、特点三、目的四、缺点五、示例代码 一、组成 抽象聚合类&#xff1a;存储集合元素&#xff0c;声明管理集合元素接口。 具体聚合类&#xff1a;实现管理集合元素接口。 抽象迭代器类&#xff1a;声明访问和遍历聚合类元素的接口。 …...

【AI游戏】使用强化学习玩 Flappy Bird:从零实现 Q-Learning 算法(附完整资源)

1. 引言 Flappy Bird 是一款经典的休闲游戏&#xff0c;玩家需要控制小鸟穿过管道&#xff0c;避免碰撞。虽然游戏规则简单&#xff0c;但实现一个 AI 来自动玩 Flappy Bird 却是一个有趣的挑战。本文将介绍如何使用 Q-Learning 强化学习算法来训练一个 AI&#xff0c;使其能够…...

VSCode 中的 launch.json 配置使用

VSCode 中的 launch.json 配置使用 在 VSCode 中&#xff0c;launch.json 文件用于配置调试设置&#xff0c;特别是用来定义如何启动和调试你的应用。它允许你配置不同的调试模式、运行参数和调试选项。 基本结构 launch.json 文件位于 .vscode 文件夹内&#xff0c;可以通过…...

深度学习算法:开启智能时代的钥匙

引言 深度学习作为机器学习的一个分支&#xff0c;近年来在图像识别、自然语言处理、语音识别等多个领域取得了革命性的进展。它的核心在于构建多层的神经网络&#xff0c;通过模仿人脑处理信息的方式&#xff0c;让机器能够从数据中学习复杂的模式。 深度学习算法的基本原理…...

Clojure语言的并发编程

Clojure语言的并发编程 引言 在现代软件开发中&#xff0c;并发编程成为了处理多个任务、提高应用效率和响应速度的重要手段。尤其是在多核处理器逐渐成为主流的今天&#xff0c;如何高效利用这些计算资源是每个开发者面临的挑战。Clojure作为一种函数式编程语言&#xff0c;…...

MySQL学习记录1【DQL和DCL】

SQL学习记录 该笔记从DQL处开始记录 DQL之前值得注意的点 字段 BETWEEN min AND max 可以查询区间[min, max]的数值如果同一个字段需要满足多个OR条件&#xff0c;可以采取 字段 IN(数值1, 数值2, 数值3....)LIKE语句 字段 LIKE ___%%% 表示模糊匹配&#xff0c;_匹配一个字段…...

EasyExcel的应用

一、简单使用 引入依赖&#xff1a; 这里我们可以使用最新的4.0.2版本&#xff0c;也可以选择之前的稳定版本&#xff0c;3.1.x以后的版本API大致相同&#xff0c;新的版本也会向前兼容&#xff08;3.1.x之前的版本&#xff0c;部分API可能在高版本被废弃&#xff09;&…...

JS控制对应数据隐藏

首先需要获得到所有的input框&#xff0c;并声明一个空对象来存放&#xff0c;遍历所有的复选框&#xff0c;将他们中选中的放入对象&#xff0c;并设置键值为true&#xff0c;然后执行checkFalseValues(result)函数 function hideItem() {let checkboxes $(.setting_box inp…...

【剑指Offer刷题系列】数据流中的中位数

目录 问题描述示例示例 1&#xff1a; 思路解析方法一&#xff1a;使用两个堆&#xff08;最大堆和最小堆&#xff09;核心思路详细步骤示例分析优势适用场景 代码实现Python 实现&#xff08;方法一&#xff1a;使用两个堆&#xff09; 测试代码复杂度分析方法一&#xff1a;使…...

RabbitMQ高级篇之MQ可靠性 数据持久化

文章目录 消息丢失的原因分析内存存储的缺陷如何确保 RabbitMQ 的消息可靠性&#xff1f;数据持久化的三个方面持久化对性能的影响持久化实验验证性能对比Spring AMQP 默认持久化总结 消息丢失的原因分析 RabbitMQ 默认使用内存存储消息&#xff0c;但这种方式带来了两个主要问…...

C 语言奇幻之旅 - 第16篇:C 语言项目实战

目录 引言1. 项目规划1.1 需求分析与设计1.1.1 项目目标1.1.2 功能需求1.1.3 技术实现方案 2. 代码实现2.1 模块化编程2.1.1 学生信息模块2.1.2 成绩管理模块 2.2 调试与测试2.2.1 调试2.2.2 测试2.2.4 测试结果 3. 项目总结3.1 代码优化与重构3.1.1 代码优化3.1.2 代码重构 3.…...

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快&#xff0c;持续集成&#xff08;CI&#xff09;和持续部署&#xff08;CD&#xff09;已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器&#xff0c;为开发者提供了一个强大的平台来实施这些实践。然而…...