是否使用一个编译器与另一个编译器兼容创建静态c库

在我的例子中,我有一个使用代码源gcc定位arm cortex-m4构建的库。 我试图将该库链接到使用IAR编译器编译的项目。

是否可以这样做或者是否必须使用新工具重建库? 哪些因素会影响这个?

静态库是几个目标文件的捆绑包,它们始终是特定于编译器的。 因此,如果您尝试将基于gcc的lib与IAR编译器链接,则由于要链接的目标文件格式不匹配,您将在编译时收到错误。

您需要使用IAR重建库。

ARM的IAR编译器支持AEABI格式,它允许您使用一个编译器编译文件并与另一个编译器链接。

如果您使用GCC构建了库并启用了AEABE,那么应该可以使用IAR工具在项目构建中使用静态库。