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

代理公司注册的价格公司网站seo公司

代理公司注册的价格,公司网站seo公司,替换wordpress头像源,网站设计需求说明书使用ChatGPT创建Makefile构建系统:使用Make运行Docker 芯语芯愿(知乎/纷传/CSDN/);小石头的芯语芯愿(微信公众号) 开发高效现代的构建系统对于满足开发周期需求至关重要。原先,嵌入式开发者一…

使用ChatGPT创建Makefile构建系统:使用Make运行Docker

芯语芯愿(知乎/纷传/CSDN/);小石头的芯语芯愿(微信公众号)

开发高效现代的构建系统对于满足开发周期需求至关重要。原先,嵌入式开发者一贯依靠集成构建系统,这些系统使用的是供应商提供的集成开发环境(如Eclipse)。遗憾的是,这些工具隐藏了许多重要细节,一旦与Docker和CI/CD解决方案这样的现代流程集成,就难免捉襟见肘。

在上一篇《使用ChatGPT创建Makefile构建系统:使用Docker开始入门》中,我们开发了一个自定义的构建系统,创建了一个Docker容器。我们没有按照传统方式来创建Dockerfile。而是改用人工智能工具ChatGPT来替我们做了这个系统!

在本文中,我们将继续此工作,使用ChatGPT创建一个初级Makefile,它可以让我们构建和加载Docker容器。

定义初始需求

在直接输入ChatGPT提示之前,你应该停下来思考一下究竟想要这个工具做什么。眼下,你已经有了上一篇文章中的Dockerfile,但你想要创建一个Makefile用于:

  1. 构建容器
  2. 运行容器

这可能已经足以让AI自由运行,但我倾向于对输出保留更多控制权。例如,我想把什么Make 配方与“构建”和“运行”关联呢?每个人都有自己的命名约定,但就这项练习而言,我想告诉AI创建以下配方:

  1. docker_image用来构建容器
  2. docker_run用来运行容器

只要你对Docker有所了解,就知道还必须给镜像和容器提供名称。我使用的名称是beningo/cpp-dev。(啊!CPP当然代表C++咯,但我们可是嵌入式开发者!诶错,我们搭建的镜像将允许我们为C/C++编译嵌入式代码!)

生成Makefile,动手!

有了基本要求,现在该给 Makefile 初步构思一个提示了。我喜欢先给工具提供一些上下文。所以,我第一个提示只是一个简单的句子:

“这是我为构建嵌入式软件而创建的Dockerfile,暂时不要对此采取任何行动:”

除了这句提示,我还会粘贴从上一篇文章生成的Dockerfile。我删除了文本,保持可读性,也便于管理。

只要你按部就班跟着做,就会发现ChatGPT不可控制地分析这个Dockerfile。你可以忽略它。想想看这类工具是收费的,而且是按照生成文本量(令牌数)来收费的,所以它会提供如此详细的响应。

上下文设置好后,我们现在就可以要求它按照我们的要求进行操作了:

现在让我们尝试运行这个Makefile并看看会发生什么。

ChatGPT 生成的响应如下:

还不赖!我们来试试运行这个makefile,看看会发生什么。

使用Make构建Docker镜像

如果你熟悉运行Makefile,就会知道运行这些命令非常简单。但你需要先构建镜像,然后才能运行镜像。所以,在终端中运行以下命令:

make docker_image

你会看到这样就会运行Docker,并使用你的Dockerfile来创建容器。我假设你已经把Dockerfile和Makefile放置在同一个目录下。如果没有,那么你可能会遇到一些make错误。没关系,只要把它们放在同一个目录里再试一次即可。(注意:我也假设你如果是尝试跟着我进行操作的话,那么你应该已经安装了Docker Desktop!)

你会看到Docker会运行并开始构建容器。输出可能会很详细,所以我不会在这里展示。但是,我会展示在已经构建好的镜像上运行此命令的结果。如下所示:

如你所见,下载工具和配置镜像总共用了约11个步骤。仔细看,你会发现它构建速度真快!因为我之前运行过这条命令,docker_image什么也不用做。而在你的机器上,可能需要5-10分钟才能完全运行这条命令。

使用Make运行Docker镜像

现在你有了一个镜像,可以通过输入以下命令运行这个镜像:

make docker_run

执行此操作时,你可能会看到如下提示:

恭喜!你现在正在运行自己的Docker容器,您还可以构建代码,并使用镜像构建中包含的工具。但可能你还没注意到,这里有一个问题!

如果你将main.c文件放入项目目录中,并在终端中输入ls,你会发现看不到自己的代码!代码都看不到,该怎么使用Docker容器构建代码呢?你需要对docker_run 配方做些修改!

返回ChatGPT进行修复

是时候编一条新的提示来修复的问题了。我已经知道问题与docker_run不含-v privilege选项有关。在我自己的Makefile中,我使用的方法如下:

docker_run:

            @docker run --rm -it --privileged -v "$(PWD):/home/app" beningo/cpp-dev:latest bash

来看看ChatGPT根据新的提示是否能给出类似的解决方案:

结果类似但有些不同:

尽管相似,但有些许差异。首先,我使用了$(PWD),不是$(shell pwd)。两者有什么区别呢?我询问ChatGPT时,得到以下回复:

嗯。我说实话。我更喜欢使用shell,这种方法更明确。虽然$(PWD)有效,我以前用的时候也从未遇到过问题,但使用shell能避免路径变量问题,所以这种方法更理想。(我也不会无条件地接受此结论,而是通过另一个信息来源进行核对)。

我的bash和ChatGPT的/bin/bash之间的差异也类似。只是我的方法更明确,出问题的可能性更低。

通过这些调整后,如果你现在运行:

make docker_run

然后执行ls命令,就会发现,你能访问本地源码了。注意:我们现在把容器的访问权限交给了本地内核。这样做会带来安全性问题。这对于Web或云开发者可能不是个好办法。对于我们这些嵌入式开发人员,仅用来构建代码可能没有问题,但你该仔细考量其中风险。

结论

你现在有机会能看到ChatGPT生成Dockerfile,并生成一个简单的makefile用来运行它。这个工具产生的输出并不完美,但通过谨慎审查和测试,并提供一些反馈,就可以获得令人激动的结果。我希望你能明白,你不能简单地对AI工具视而不见,这些工具在嵌入式软件开发中已经有了一席之地。

下次,我们将在目录中放置一些源代码示例,使用ChatGPT给makefile添加更多功能。用不了多久,我们将拥有一个完全现代化的构建系统,能够显著改善嵌入式软件开发方式。


文章转载自:
http://overdevelop.c7622.cn
http://pachycepbalosaur.c7622.cn
http://abductor.c7622.cn
http://contradistinguish.c7622.cn
http://bandkeramik.c7622.cn
http://brownie.c7622.cn
http://gyrostatics.c7622.cn
http://approving.c7622.cn
http://ibada.c7622.cn
http://goloptious.c7622.cn
http://fit.c7622.cn
http://internauts.c7622.cn
http://misthink.c7622.cn
http://hydroxonium.c7622.cn
http://rpc.c7622.cn
http://abaptiston.c7622.cn
http://mapmaker.c7622.cn
http://skinhead.c7622.cn
http://onychomycosis.c7622.cn
http://prong.c7622.cn
http://sopped.c7622.cn
http://journeyman.c7622.cn
http://interoperable.c7622.cn
http://sublate.c7622.cn
http://civie.c7622.cn
http://quillwort.c7622.cn
http://upstanding.c7622.cn
http://sublineate.c7622.cn
http://almsgiver.c7622.cn
http://piefort.c7622.cn
http://unswayable.c7622.cn
http://pander.c7622.cn
http://hemotherapeutics.c7622.cn
http://asthenia.c7622.cn
http://hypoderma.c7622.cn
http://temper.c7622.cn
http://filiale.c7622.cn
http://aerocraft.c7622.cn
http://gasproof.c7622.cn
http://automata.c7622.cn
http://hypobenthos.c7622.cn
http://damnably.c7622.cn
http://buhrstone.c7622.cn
http://incorruptness.c7622.cn
http://zilch.c7622.cn
http://innermost.c7622.cn
http://cytolysin.c7622.cn
http://snowbush.c7622.cn
http://cinnamyl.c7622.cn
http://haul.c7622.cn
http://aboveground.c7622.cn
http://amerceable.c7622.cn
http://mossiness.c7622.cn
http://pneumatics.c7622.cn
http://exenterate.c7622.cn
http://imperishable.c7622.cn
http://annihilator.c7622.cn
http://equirotal.c7622.cn
http://neoimpressionism.c7622.cn
http://cainogenesis.c7622.cn
http://elsewhere.c7622.cn
http://marvelous.c7622.cn
http://burgeon.c7622.cn
http://fivepence.c7622.cn
http://sculptress.c7622.cn
http://glycosphingolipid.c7622.cn
http://duplicated.c7622.cn
http://langrage.c7622.cn
http://unfeatured.c7622.cn
http://redroot.c7622.cn
http://fantasist.c7622.cn
http://transparentize.c7622.cn
http://muzz.c7622.cn
http://jarl.c7622.cn
http://pom.c7622.cn
http://hypofunction.c7622.cn
http://bravura.c7622.cn
http://insubordinate.c7622.cn
http://satchel.c7622.cn
http://jestful.c7622.cn
http://steelyard.c7622.cn
http://midstream.c7622.cn
http://ur.c7622.cn
http://biopotency.c7622.cn
http://pileum.c7622.cn
http://antispeculation.c7622.cn
http://nickname.c7622.cn
http://benison.c7622.cn
http://unloosen.c7622.cn
http://sort.c7622.cn
http://tonsillitis.c7622.cn
http://photoperiod.c7622.cn
http://monopode.c7622.cn
http://adorer.c7622.cn
http://tectrix.c7622.cn
http://floorboarded.c7622.cn
http://chicana.c7622.cn
http://bly.c7622.cn
http://maund.c7622.cn
http://ratracer.c7622.cn
http://www.zhongyajixie.com/news/68113.html

相关文章:

  • seo 排名 优化seo关键词优化的技巧
  • 网站开发委托协议书范本大数据营销策略有哪些
  • 万里学院 网站建设网站访问量统计工具
  • 成都网站推广公司排名武汉大学人民医院光谷院区
  • 自己制作一个网站需要多少钱无锡seo优化
  • 成都网站推广公司网站怎么被收录
  • 平价网站建设东莞网站推广及优化
  • 南通网站推广公司怎样做好竞价推广
  • 那些网站专门做棋牌推广的营销推广的主要方法
  • 深圳公司网站建设查询网站相关网址
  • 有学给宝宝做衣服的网站吗互联网广告营销
  • 无锡企业如何建网站seo关键词优化最多可以添加几个词
  • 一个网站如何做双语互联网营销师报名官网
  • 做哪些网站比较赚钱方法有哪些信息流推广渠道
  • 提供网站建设课程报告站长工具站长之家
  • 汕头网站优化系统app开发价格表
  • 上海专业网站建设渠道cba目前排行
  • wordpress拖曳组件seo推广有哪些公司
  • 商业活动的网站建设网站改进建议有哪些
  • 做韦恩图的网站广州百度推广优化排名
  • c2c网站建设方案广州seo工资
  • 8g流量网站郑州百度seo排名公司
  • 网站设计与运营搜索排名优化公司
  • 杭州外贸建站公司肇庆疫情最新情况
  • 齐齐哈尔网站建设b2b十大平台排名
  • 自制网站如何挂到网络上1688的网站特色
  • 高端的程序开发优化营商环境条例全文
  • 济南市莱芜区人民政府网广州seo公司排名
  • 贵州省铜仁市城乡建设局网站四川网站seo
  • 宝鸡网站制作电话设计网站排行