iar - 在 IAR Embedded Workbench 中使用静态库时的编译依赖

标签 iar

我想将我的 IAR Embedded Workbench 工作区分成几个项目。目前,我们在与主应用程序相同的项目中拥有操作系统和其他代码,但我希望操作系统和其他外部代码是我的应用程序所依赖的静态库。

我知道如何创建静态库项目以及如何添加 is 作为我的可执行文件的依赖项,但我的问题在于编译过程。 IAR 似乎不明白它必须在可执行文件之前编译库。当库不存在时,我收到一条错误消息,指出文件丢失,但当库之前编译过一次但内部的某些文件发生更改时,情况会更糟。然后可执行文件编译没有任何错误,但它使用的是 OLD 库!

是否可以让 IAR 在更改时自行构建静态库?当我有几个静态库和更多依赖项时呢?

我有一个使用预构建事件的想法,但我想知道对于这种情况是否有任何开箱即用的方法,如果没有,最好的解决方案是什么。

我们目前使用的是 IAR 6,但可能很快就会升级到 7。

最佳答案

我与 IAR 支持人员进行了交谈。这是结论:
- 预构建事件是一个有效的解决方案
- 批量构建允许您定义一个有序的项目列表,这些项目都需要按照特定的顺序一起构建
- 对于命令行编译 - 不支持批量构建(在工作区级别定义) - 因此只需按照需要编译的顺序单独编译所有项目。

就我个人而言,我更喜欢批量构建选项而不是预构建事件,因为它允许常规构建(即不构建未更改的内容)和干净的重建(从头开始)。尽管不支持使用命令行进行批量构建,但很遗憾,因为这使我们在两个不同的位置定义了项目及其排序...

关于iar - 在 IAR Embedded Workbench 中使用静态库时的编译依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455920/

相关文章:

c++ - 无法打开源文件 "limits"

c - 带(有符号)枚举值的按位运算

c - 从CLIB到DLIB:size_t未定义

c - 如何在 IAR IDE Watch 窗口中通过指针显示数组范围?

c - 为什么中断服务程序PUSH {r3,r4,r5,lr}但POP {r0,r4,r5,lr}会导致ERROR?

c - IAR Pragma data_alignment 不工作

c - C 函数的内存布局

IAR 上的 C 编程

c - LCD基址

c - IAR Embedded Workbench : stdarg. h 未预处理