目前情况: 我们正在开发将在微控制器上运行的C代码。我将此代码称为MODEL。它只是最终软件的一部分,它将在控制器上运行。软件有不同的变体,因此我们有不同的模型代码,与常用文件基本相同,但也有模型特定文件。 为了模拟模型的行为,已经开发了FRAMEWORK。该框架嵌入了模型代码,它为模型的输入和输出提供了一些手段和一些评估功能。该框架是用C / C ++编写的。 除了框架代码,模型代码存储在不同的文件夹Model_X,Model_Y,... 现在,要运行模拟,您需要将模型与模型代码一起编译。我们使用Visual Studio并为每个Framework + Model提供一个解决方案文件,因此存在Model_X.sln,Model_X.vcxproj,Model_Y.sln,Model_Y.vcxproj,它使用相同的框架代码但不同的模型代码。
问题: 每当我对框架进行更改(例如向项目添加新文件)时,我都必须修改每个.vcxproj。这真的是大量的工作,也容易出错和冗余。
问题: 我如何安排我的项目,以便在更改框架时不需要修改每个.vcxproj文件?
解决方案主张:
使用将include / compile定义插入所有内容的脚本 .vcxproj文件
+:“快速”解决方案
- :它并没有真正解决问题
将每个项目拆分为两个项目,一个用于模型(Model_X.vcxproj),一个用于框架(framework.vcxproj),将这些项目组合在一个特定于模型的解决方案(Model_X.sln)中。
+:仅对framework.vcxproj进行框架更改,该文件在.sln文件之间共享。
- :如果模型代码有一个新的常用文件,我们仍然需要修改所有模型.vcxproj文件。
使用像Cmake这样的工具生成.vcxproj文件。
+:仅在一个地方进行更改
- :开发人员必须更改cmake脚本而不是项目文件
你能告诉我,哪些想法在我的情况下有意义,哪些没有?你还有其他想法吗?