1

目前的情况: 我们正在开发将在微控制器上运行的 C 代码。我将此代码称为模型。它只是将在控制器上运行的最终软件的一部分。软件有不同的变种,所以我们有不同的型号代码,与常用文件基本相同,但也有特定型号的文件。为了模拟模型的行为,已经开发了一个框架。这个框架嵌入了模型代码,它提供了模型输入和输出的手段和一些评估能力。该框架是用 C/C++ 编写的。除了框架代码之外,模型代码存储在不同的文件夹 Model_X、Model_Y、... 现在,要运行仿真,您需要将框架与模型代码一起编译。我们使用 Visual Studio,每个框架+模型都有一个解决方案文件,

问题: 每当我对框架进行更改(例如向项目中添加新文件)时,我都必须修改每个.vcxproj。这确实是大量的工作,而且容易出错和冗余。

问题:如何安排我的项目,以便在对框架进行更改时不需要修改每个 .vcxproj 文件?

解决方案:

  1. 使用将包含/编译定义插入所有 .vcxproj 文件的脚本

    +:“快速”解决方案

    -:它并没有真正解决问题

  2. 将每个项目拆分为两个项目,一个用于模型 (Model_X.vcxproj),一个用于框架 (framework.vcxproj),将这些组合成一个特定于模型的解决方案 (Model_X.sln)。

    +:仅对在 .sln 文件之间共享的 framework.vcxproj 进行框架更改。

    -:如果模型代码有新的常用文件,我们仍然需要修改所有模型.vcxproj文件。

  3. 使用 Cmake 之类的工具生成 .vcxproj 文件。

    +:仅在一处进行更改

    -:开发人员将不得不更改 cmake 脚本而不是项目文件

你能告诉我,哪些想法对我来说有意义,哪些没有意义?你还有其他建议吗?

4

0 回答 0