go程序的入口是main函数吗?诚然很多程序的入口都是main,比如java,C++,C等,但是go由于他的运行时环境是代码,而不是像Java那样有自己的虚拟机,所以程序在运行main函数之前,需要做很多的准备工作,
该文章就来研究一下go程序是如何运行的!
相关文章
- 04-29go是如何运行的?-前言
- 04-29公司服务器中的kafka消息中间件挂了,我是如何修复的?
- 04-29嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】- 图 3.2.1.1 ESP32-IDF 安装包(部分截图) 上图中 ESP32-IDF v5.1.2 - Offine Installer,5.1.2 是当前最新版本,如果没有 ESP32-IDF v5.1.2 - Offine Installer,说明官方有更新最新版本。我们建议使用离线 ESP32-IDF 安装包,因为使用在线 ESP32-IDF 安装包搭建环境需要网络的支持,所以我们不能保证网络下载过程中丢失某些文件,从而导致搭建环境失败。 下载成功后,在安装程序上单击右键选择<以管理员身份运行>运行 esp-idf-tools-setup- 图 3.2.1.2 以管理员身份运行 IDF 安装文件打开安装程序后选择简体中文安装,如下图所示: 图 3.2.1.3 选择简体中文 往下走就是许可协议,勾选“我同意此协议”,单击下一步,如下图所示: 图 3.2.1.4 勾选“我同意此协议” 如果是第一次安装,会出现如下图提示。 安装程序会检查你当前系统有没有打开"长路径支持",因为 GNU 编译器产生的编译文件会有非常深的目录结构,如果不支持长路径,编译可能出现文件不存在,目录不存在等奇怪的错误。这里单击应用修复按钮,可以修复这个问题。 在弹出的确认对话框中,选择是,开始修复。 图 3.2.1.6 在注册表中启用长路径如果修复不成功,一般情况是安装软件打开时没有使用管理员权限打开,可以手动修改注册表来支持长路径:打开注册表 HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPat hsEnabled 设置为 1。如下图所示: 修复完成之后,点击下一步。 接下来一步,开始选择安装目录,安装程序默认的安装位置为 C:\Espressif,但这里我是安装在 D 盘,如果全部源码编译后可能产生几十 G 的大小占用,我们在 D 盘下创建 ESP32\Espre ssif 文件夹来保存 ESP32-IDF 库安装过程中生成的文件,如下图所示: 图 3.2.1.8 设置安装路径 这个安装路径非常重要,因为 VS Code 软件的 IDF 插件需要此路径来获取相关文件,所以开发者务必牢记该路径。 下一步,确认安装组件,这里全部打勾,默认完全安装时 ESP32C2 是不打勾的(如下图所示),看需要自己选择。然后单击下一步。 图 3.2.1.9 选择安装组件我们选择全部安装。点击下一步再次确认安装目录信息,然后单击安装。安装完成,三个全部勾选,2 用于测试环境安装是否成功,3 是将 IDF 工具链加入杀毒工具排除项,以加快编译速度,如下图所示: 3.2.2 验证 ESP-IDF 库 ESP-IDF 安装完成之后,系统自动打开两个窗口,它们分别为 PowerShell 命令行和传统的 cmd 命令行窗口,分别如下图所示: 从上图中可以看到,当出现红色方框内的内容时,可以初步证明安装是没有问题的,同时这两个窗口都提示“idf.py build”字符串,它是 ESP32-IDF 库提供的编译代码命令。到此,我们如何验证 ESP32-IDF 库安装是否成功呢?这里我们使用 ESP32-IDF 库提供的实例来验证安装是否成功。首先我们打开 D:\ESP32\Espressif\frameworks\esp-idf-v5.1.2\examples\get-started 路径,在此路径下包含三个 ESP32-S3 例程,如下图所示: 这里我们使用第二个例程(hello_world)来验证 ESP32-IDF 库是否安装成功,首先拷贝这里例程的路径,然后在 PowerShell 或 cmd 命令行窗口输入命令“cd D:\ESP32\Espressif\framew orks\esp-idf-v5.1.2\examples\get-started\hello_world”,最后按回车进入此例程,如下图①所示: 此时在此窗口输入命令“idf.py build”(上图②)编译此工程,编译结果如下所示: 窗口提示命令“idf.py -p (port) flash”,证明 ESP32-IDF 库安装完成。开发者也可以使用其他命令来验证,如命令(idf.py Menuconfig 进入菜单配置、idf.py set-target xxx 选择芯片或者是 idf.py monitor 开启监控等)。 3.2.3 添加 ESP32-IDF 的环境变量 按照此过程(此电脑→属性→高级系统→环境变量)打开,如下图所示: 图 3.2.3.1 添加环境变量 如果 ESP32-IDF 库安装成功,则系统自动为我们添加上图中的 IDF_TOOLS_PATH 和 IDF_PATH 环境变量,否则手动添加这两个环境变量。 3.3 搭建开发环境 3.3.1 下载与安装 VSCode 鉴于我们使用的是 VSCode IDE 搭配官方 IDF 的方式进行开发,我们接下来便介绍一下 VSCode 的安装过程。 首先,进入 VSCode 官方下载页面,根据系统需求选择下载安装包下图是 VSCode 图 3.3.1.1 VSCode 官网下载界面 这里,我们选择 Windows 版本进行下载。因为,我们是在 Windows 环境下进行的开发,故在此介绍 Windows 版本的下载步骤。不出意外,其它版本的下载方式应该也是一样的。这里我们不多废话,直接点击下载。 下载完后,我们按照如下所示步骤进行即可: 在该步骤中,路径如需更改的,请您点击“浏览”进行更改,但请注意:修改的路径最好不要出现中文,以避免在往后的开发过程中遇到问题而导致重装软件,这对您来说就得不偿失了。 如需修改,同样点击“浏览”进行设置,无需修改的话直接点击“下一步”即可。 这一步骤同样是有需求的都勾上,我们建议是都勾上。 详细的个性化设置我们便不多介绍了,在这里我们介绍如何设置中文界面。 我们在上图 3.4.8 中找到最左边一栏的“扩展”在搜索框中输入“Chinese”即可出现红色框内的扩展应用,然后我们点击安装并重启软件即可。 至此,VSCode 的安装与配置便算是大功告成了。感谢您能耐心看到此处。
- 04-29无人机干扰技术及干扰设备突破性发展-1.无线电干扰:由于无人机在遥控、定位、数据传输等方面都依赖于无线电技术,因此通过发射干扰信号可以破坏无人机的通信链路,使其失去控制或无法传输数据。 2.GPS干扰:GPS是无人机定位的主要方式之一,通过发送误导性的GPS信号,可以使无人机无法准确获取位置信息,导致其定位偏移或丧失导航能力。 3.信号屏蔽:通过发射特定频率的屏蔽信号,可以阻止无人机接收到控制信号或传输数据,从而使其失去控制或无法完成任务。 4.光学干扰:利用强光束或激光器等设备对无人机的光学传感器和摄像头进行干扰,可以降低其视觉识别和目标跟踪能力,甚至使其无法正常工作。 无人机干扰设备是一种用于干扰无人机通信和导航的设备。它们通常使用无线电信号、电磁波或其他物理手段来干扰无人机的正常运行。这些设备可以用于各种目的,例如保护军事设施、监视区域、保护公共安全等。 然而,无人机干扰设备也存在一些问题和风险。首先,它们可能会对周围的无线设备造成干扰,包括手机、电视、无线电等。其次,无人机干扰设备可能会对无人机的控制系统造成损坏,导致无人机坠毁或失控。最后,无人机干扰设备可能会对他人隐私和安全造成威胁。因此,在使用无人机干扰设备时,必须遵守相关法律法规和道德准则,确保不会对他人造成任何伤害或损失。同时,也需要注意使用无人机干扰设备的合适性和必要性,避免过度使用或滥用。 另外,随着无人机技术的不断发展和广泛应用,无人机干扰设备也需要不断更新和改进,以适应新的挑战和需求。例如,一些先进的无人机干扰设备可以识别并仅干扰特定类型的无人机,减少对周围无线设备的干扰。同时,一些无人机干扰设备也可以与无人机进行通信,引导无人机降落或返回,避免对人员和财产造成伤害。 无人机干扰技术及干扰设备的发展近年来取得了显著的突破。这些突破主要体现在两个方面:声波干扰技术和微波武器领域的新突破。
- 04-29应对电网挑战!lonQ与橡树岭国家实验室利用量子技术改善关键基础设施-摘要:美国电网正在面临需求增加和能源扩散的挑战,对能够应对优化和安全挑战的创新解决方案有着迫切需求。IonQ 与橡树岭国家实验室开展合作,将为企业利用经典-量子的混合资源开发应用提供帮助。 近日,量子计算行业的领导者 lonQ 宣布,将与橡树岭国家实验室合作,探索如何利用量子技术实现现代化电网。这项由美国能源部资助的研究计划,是 lonQ 对使用量子计算机解决世界上最复杂、最具影响力问题的持续承诺。 橡树岭国家实验室 (ORNL) 成立于 1943 年,是美国能源部系统中规模最大、年度预算第三大的科学与能源国家实验室。此次,橡树岭国家实验室与 lonQ 开启合作,将显著加速电网现代化建设,并以此为契机,应对能源基础设施中的关键挑战,为更具可持续性和弹性的未来铺平道路。 “实现美国电网现代化是当务之急:如果不这样做,将会影响美国人的日常生活和我们的国家安全。”IonQ 首席营收官 Rima Alamedine 说道:“我们相信量子技术最终将增强美国电网的弹性、可靠性和安全性。通过与橡树岭国家实验室在这个能源部项目上的合作,我们正在努力开拓量子解决方案,为子孙后代提供更强大、更高效的电力系统。” (图片来源:网络) 橡树岭国家实验室另一位项目领导者苏曼·德布纳特 (Suman Debnath) 也表示:下一代电网需要新的运营和规划能力,以便企业能够在几十年内就基础设施投资做出更好的决策,以实现国家的能源目标。 同样的,在 IonQ 产品和应用高级副总裁 Ariel Braunstein 看来,量子计算代表着解决问题能力的革命性飞跃。“我们非常渴望将量子计算能力引入能源领域,目标是推动电网优化和安全方面的切实进步。通过这次合作,我们希望找到切实可行的解决方案,从而显著增强国家的能源基础设施。” IonQ 的工作得到了 GRID-Q 项目和 ORNL 计划的支持。前者是美国能源部电网现代化计划的一部分,后者是橡树岭国家实验室的量子计算用户计划,通过提供最先进量子计算机的访问服务,以测试实际应用程序,例如控制电网等,并提供有效反馈。 随着电力系统在规模、复杂性等方面的增加,对于传统计算范式来说,解决电力系统中诸如潮流计算、机组组合优化、稳定性评估等问题变得愈发困难,这使得量子计算成为一种破局选择。
- 04-29面试题:Kafka中Controller的作用是什么?选举流程是怎样的?以及如何避免脑裂问题?-题目答案
- 04-29如何用Selenium通过Xpath,精准定位到“多个相同属性值以及多个相同元素”中的目标属性值-前言
- 04-29Redis 内存是如何划分的?
- 04-29低噪声放大器是如何实现低噪声放大的功能的
- 04-29项目中如何获取Java运行环境中的文件内容