我正在使用C语言进行嵌入式编程(即目标是微控制器),并且处于将我的SW模块作为目标代码(库)交付的情况,供客户团队使用。< / p>
通常,我以前通常将SW作为源代码提供,并且我知道如何集成(编译,链接源代码)的约束,但是我不知道客户端obj(库)代码集成的约束是什么。
例如:-是否必须与我的编译器具有相同的编译器? -客户每次更改编译器选项,链接器选项等时,是否都必须为该库每次重新生成资源?
预先感谢您的回答。
Simo
答案 0 :(得分:1)
答案很大程度上取决于目标的支持。您可能必须提供以下所有组合的库:
,甚至更多。例如,我使用的一个针对ARM Cortex-M3、4和7的特定RTOS会生成20个变量的顺序。
一种明显的方法是使用一个构建系统,该系统将在单个构建中生成所有必需的组合。
绝不是给定编译器之间的目标代码兼容性,因此您可能还必须为多个编译器进行构建,而这又可能需要许可证 为每一个。这可能会很昂贵,并且在大多数情况下,不允许对您分发的代码使用试用版或评估版。
一种替代方法可能是使用源代码混淆器,这会使您的代码几乎不可读,很难修改或进行反向工程,同时允许您的客户针对其特定目标和所需的编译器/链接器设置对其进行编译。