惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

文章列表

吉利银河翼真L380 【动态测试_Flash】 【动态测试_DIO】 【曲轴信号】 【动态测试_ADC】 【动态测试_软件安装】 【读书_了凡四训】 [岚图梦想家座椅] 【CAN错误帧分析】 【小鹏X9座椅破解_完结撒花】 【动态测试_软件操作_语句覆盖100%】 【小鹏X9座椅破解_解决思路】 【这是拍到了谁家后花园!!!】 【遥控魔鬼鱼拆解】 【MATLAB R2024b超详细图polyspace激活安装】 【我们的语言来自何处】 [Halo的Hao主题好用的注入代码] 【Automotive SPICE 培训笔记】 【拆解小米mix2s】
【IDE编译器的使用笔记】
标签 · 2025-04-21 · via

一.Post-build steps中常用的命令

修改完Post-build steps的Command后,修改的内容将更新至当前工程makefile文件的post-build下.

同时,工程目录下的.cproject文件中也会更新修改的命令.

1.设置编译生成hex和elf文件的指令

tricore-objcopy -O ihex VehicleControl.elf VehicleControl.hex 

tricore-objcopy -O ihex VehicleControl.elf VehicleControl.hex 是一个命令行指令,用于将一个 ELF 格式的可执行文件(VehicleControl.elf)转换为 Intel HEX 格式(VehicleControl.hex)。具体来说:

  • tricore-objcopy 是一个用于处理 TriCore 架构对象文件的工具,它可以用于复制和转换对象文件格式。

  • -O ihex 指定输出格式为 Intel HEX 格式,这是一种常用于存储程序数据的文本格式,通常用于微控制器的编程。

  • VehicleControl.elf 是输入文件,通常包含编译后的程序代码和数据。

  • VehicleControl.hex 是输出文件,转换后以 Intel HEX 格式保存的文件。

这个命令的作用是将 VehicleControl.elf 文件中的内容提取并转换为可以通过编程工具加载到微控制器中的 HEX 文件格式。

2.复制文件命令

copy ${workspace_loc}\VehicleLib\iROM\libVehicleLib.a ${workspace_loc}\VehicleControl\src\Run_Time_Environment /y
  • copy: 这是 Windows 操作系统中用于复制文件的命令。

  • ${workspace_loc}\VehicleLib\iROM\libVehicleLib.a: 这是源文件的路径,即要被复制的文件。

    • ${workspace_loc}: 这是一个变量,通常代表你的工作空间(workspace)的根目录路径。在集成开发环境(IDE)或构建系统中,这会被替换为实际的路径。

    • \VehicleLib\iROM\libVehicleLib.a: 这是在工作空间根目录下,名为 VehicleLib 的文件夹中,再进入 iROM 文件夹,找到名为 libVehicleLib.a 的文件。

      • libVehicleLib.a: 从文件名看,这很可能是一个**静态库(static library)**文件。.a 是静态库在类 Unix 系统(如 Linux、macOS)以及一些交叉编译工具链(如用于嵌入式开发的 GCC 工具链)中常用的扩展名。lib 前缀也是库文件的常见命名约定。VehicleLib 可能表示这是一个与“车辆功能”相关的库。

  • ${workspace_loc}\VehicleControl\src\Run_Time_Environment: 这是目标目录的路径,即文件要被复制到的位置。

    • ${workspace_loc}: 同上,代表工作空间的根目录路径。

    • \VehicleControl\src\Run_Time_Environment: 这是在工作空间根目录下,名为 VehicleControl 的文件夹中,再进入 src 文件夹,最后进入 Run_Time_Environment (运行时环境) 文件夹。

  • /y: 这是 copy 命令的一个选项(option)

    • 它的作用是禁止提示确认覆盖。如果目标目录中已经存在一个同名文件(即 libVehicleLib.a),使用 /y 选项后,copy 命令会自动覆盖现有文件,而不会询问用户是否要覆盖。

二.常用功能

1.编译器优化等级调整

修改后工程的.cproject文件将会更新改动.

三.使用编译器遇到的问题

1.clean失败(错误码87)

导致clean失败的原因是:

rm -rf 后面跟着的那一长串文件名列表加起来可能超过了 CreateProcess 函数或 rm.exe 程序能处理的单条命令行的最大长度限制.

如果makefile文件是编译器自动生成的,那么在makefile中,clean命令应该如下:

clean:
	-$(RM) $(I_DEPS)$(PCP_S)$(OBJS)$(ARCHIVES)$(C_DEPS)$(CPCP_DEPS) libVehicleLib.a
	-@echo ' '

此时将rm后面的元素分步单独删除即可

clean:
	-$(RM) $(I_DEPS)
	-$(RM) $(PCP_S)
	-$(RM) $(OBJS)
	-$(RM) $(ARCHIVES)
	-$(RM) $(C_DEPS)
	-$(RM) $(CPCP_DEPS)
	-$(RM) libVehicleLib.a
	-@echo ' '

修改后编译的效果如下

此时,点开makefile文件,如果刚刚修改的clean部分代码又变回原来的样子,说明在编译的时候,编译器又自动生成的makefile文件并覆盖了我们的修改,此时可以在工程的Properties选项中取消勾选自动生成makefile文件.

OK,此时记得再次修改被覆盖的makefile文件中的clean命令后,再进行clean和build.

本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 Allen的小破站