ST意法半导体
直播中

刘伟

7年用户 1702经验值
私信 关注
[问答]

为什么我创建一个STM32静态库项目没有可用的链接器设置呢

如果我创建一个 STM32 静态库项目,则没有可用的链接器设置。
为什么?











回帖(1)

马龙

2022-12-2 14:13:49
“静态库”项目只是 zip 文件中目标文件的集合。
因此,C 链接器根本不参与构建过程。
通常,静态库的构建过程仅包括:


  • C 预处理器扩展所有 C 宏/包含(工具:arm-none-eabi-cpp.exe)
  • C 编译器 - 构建每个编译单元(编译单元 = .c 文件到 .o 文件)(工具:arm-none-eabi-gcc.exe)
  • Archiver - 创建一个包含所有目标文件的 .a 文件(.a-file = archive)(工具:arm-none-eabi-ar.exe)

目标文件包含库项目构建的每个函数的说明。
小心 .o 文件是二进制格式,您需要使用“objdump”将其转换回汇编程序...
目的是允许客户构建静态库以跨项目或 MCU 共享...
但是 - 我根本不会在屏幕截图中使用该项目类型。这是一个遗留项目。而是按照建议参考 UM2609,并使用提到的章节中显示的方法。该项目类型能够设置“mcpu=cortex-m?” 标记每个构建配置,真正实现在库中跨产品/项目共享代码。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分