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

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

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

我有一个使用预构建事件的想法,但是我想知道这种情况下是否有任何现成的方法,如果不是,最好的解决方案是什么。

我们目前正在使用IAR 6,但可能很快就会移至7。

最佳答案

我与IAR支持小组进行了交谈。这是结论:
-预建事件是有效的解决方案
-批处理构建使您可以定义一个项目的有序列表,所有这些项目都需要按照特定顺序一起构建
-对于命令行编译-不支持批处理构建(在工作空间级别上定义)-因此,只需按需要编译的顺序分别编译所有项目。

我个人比较喜欢批构建选项,而不是预生成事件,因为它既可以进行常规构建(即,不构建未更改的内容),又可以进行干净的重建(从头开始)。遗憾的是,虽然不支持使用命令行进行批处理构建,因为这使我们在两个不同的位置两次定义了项目及其顺序...

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

10-14 10:47