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?” 标记每个构建配置,真正实现在库中跨产品/项目共享代码。
“静态库”项目只是 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?” 标记每个构建配置,真正实现在库中跨产品/项目共享代码。
举报
更多回帖