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

Hightec生成tricore lib及lib的使用方法

文章目录

    • 前言
    • 使用tricore-ar生成lib
      • option
      • modifier
      • 生成lib示例
      • 解压lib示例
    • lib的使用
    • 总结

前言

之前介绍过GHS生成lib及使用lib的方法,链接:使用Greenhills生成Lib并使用Lib的两种方法
本文基于TC3xx介绍Hightec生成lib及使用lib的方法,其他芯片也可以参考

使用tricore-ar生成lib

查阅Hightec Tricore编译器使用手册,知道了使用tricore-ar.exe来生成lib,生成lib的过程本质就是将c文件编译之后的.o文件进行打包,打包好的lib文件在手册中称为archive(存档)

生成lib的命令为:

tricore-ar [--error-numbers] [-]<option>[<modifier>] <archive> [<member> ...]

Tricore-ar由命令行选项控制。这些命令行选项总是一个字母,指定要执行的操作,以及一个或多个可选修饰符,用于修改操作的默认行为。tricore期望有一个定义要做什么的选项(可选地使用修饰符)和一个被操作的lib。

大多数unix工具都希望在选项前面加一个破折号[-]。这个破折号是可选的

option

关键选项option如下:

d:从lib文件中删除模块。指定要删除的模块名称为member。如果没有指定要删除的文件,则lib不会受到影响。如果你指定了‘ v ’修饰符,tricore-ar会列出每个被删除的模块

r:插入文件member…到archive并替换。如果中命名的文件之一…不存在,则显示一条错误消息,并且不干扰任何与该名称匹配的现有存档成员.如果没有列出要添加的文件,tricore-ar将创建一个空归档,其中只包含归档头文件

x[o]:从归档文件中提取成员(名为member)。您可以在此操作中使用修饰符‘ v ’,以请求tricore在提取名称时列出每个名称.如果不指定member,则提取存档中的所有文件

modifier

modifier可以附加在option之后,以指定操作行为的变化
u:通常,tricore-ar会将列出的所有文件插入到存档中。如果只希望插入列表中比现有同名成员更新的文件,请使用此修饰符。‘ u ’修饰符只允许用于操作r(替换)

v:此修饰符请求操作的详细版本。当附加修饰符v时,许多操作显示附加信息,例如处理的文件名

生成lib示例

由上述选项及修饰符可知,生成lib的命令可以为:

tricore-ar rv libTest.a test.o

r表示将.o插入lib,v表示列出插入的具体文件,打印信息如下:
在这里插入图片描述
注意:lib名需要以lib开头,且文件类型为.a

当lib中不存在该文件时,显示为a,如果是已存在的文件,则显示为r

解压lib示例

如果想看lib中的有哪些.o文件,可以使用下面的命令:

tricore-ar xv libTest.a 

x表示提取lib中的文件,此处没有指定具体的member,所以会提取所有的.o文件到makefile路径
在这里插入图片描述

lib的使用

和之前GHS的类似,使用-L指定lib路径,使用-l指定具体的lib名,需要注意的是,lib名需要去除名称前面的lib,和文件类型,使用手册中的说明如下:
在这里插入图片描述
在链接过程中,加入lib路径和lib即可

PRJLIB := -lTest
PRJLIBDIR := -L./Build/lib@$(LD)  -o "$@" $(OBJS)  $(LDFLAGS)  $(PRJLIBDIR)  $(PRJLIB)  

注意:建议将OBJS放到LIB前面,否则使用时可能找不到lib中的函数

总结

大部分编译器的命令都是类似的,遇到问题可以多查手册,加上问deepseek/chatgpt,应该很快就可以搞定~

相关文章:

  • 自动化立体仓库堆垛机控制系统STEP7 FC3功能块 I/O映射
  • 为车辆提供路径规划解决方案:技术演进、挑战与未来蓝图
  • 数据结构转换与离散点生成
  • c++11标准(5)——并发库(互斥锁)
  • 偏微分方程通解求解2
  • ​《吠檀多不二论的四个基本原理》​(前三部分)
  • 【软考高级系统架构论文】论无服务器架构及其应用
  • 2025年- H83-Lc191--139.单词拆分(动态规划)--Java版
  • Axios 在 Vue3 项目中的使用:从安装到组件中的使用
  • XSS-labs的1-18关
  • 60天python训练营打卡day38
  • 【StarRocks系列】查询优化
  • C 语言结构体:从基础到内存对齐深度解析
  • springboot垃圾分类网站
  • 响应式数据的判断:Vue3中的方法
  • 学c++ cpp 可以投递哪些岗位
  • AI大模型(四)openAI应用实战
  • 大模型在急性弥漫性腹膜炎预测及治疗方案制定中的应用研究
  • rt-thread中使用usb官方自带的驱动问题记录
  • MySQL存储引擎与架构
  • 怎么给网站做快照/app运营推广策划方案
  • 用jquery做的网站/baidu百度网盘
  • 免费装修效果图网站/浙江网站推广公司
  • 网站定制微安电力案例/免费的html网站
  • 婚恋网站建设的目的/做网络优化的公司排名
  • 灵犀科技 网站建设/巨量引擎官网