我的设置
我有一台 Windows 10 PC,上面有一个 ubuntu 18.04 virtualbox(+ 客户版),一切运行良好。
我使用 ubuntu VM 来开发我们的 C++ 代码,所有工具和 gcc 等都运行良好。但是我们使用 IBM 的 Rhapsody 来生成一些状态机代码 - 这可能是一个错误,但我们已经走得太远了,现在不想停止使用它,它是一个很好的状态机工具 - 但却是一个糟糕的 IDE!
Rhapsody 在 Windows 上运行良好,但仅支持 Redhat 6 32 位版本。我正在努力让它在较新版本和 64 位上运行 - 但目前这是一项后台任务。
我需要一种快速生成状态代码并将其与项目其余部分集成的方法。以下是我的想法:
- 在 Windows 上用 rhapsody 绘制状态机并生成代码 ->
.../project/autogen/
所有的 rhapsody 代码都放入一个名为 autogen 的文件夹中。 - 在 ubuntu VM 上构建项目
.../project/> make
但这需要共享 VM 文件夹和 Windows 文件夹。所以听起来我只需要设置 VM 共享。这里的问题是共享的文件夹是 Windows 端的,并且此文件夹格式不适用于 Linux(git、make、gcc 等...),因为权限/类型都是错误的(更不用说符号链接了)。
我们当前的解决方案
因此,目前我们在 Windows 和 Ubuntu 上都有完整的开发环境。在 Windows 上,我们使用 Visual Studio 和 Rhapsody。在 Ubuntu 上,我们使用 GCC 和 vscode。我们的工作流程如下:
- 在 Windows 上:编辑 Rhapsody 状态机并生成代码
- 在 Windows 上:测试并调试状态变化
- 在 Windows 上:将更改提交到 git
- 在 ubuntu 上:从 git 中提取更改
- 在 ubuntu 上:编辑代码的其他区域,测试和调试
- 在 ubuntu 上:推送到 git
- 在 Windows 上:从 git pull
- 在 Windows 上:重新测试更改(如果需要,请调试)
我们有两个 jenkins 服务器(分别用于 Windows 和 Ubuntu)。由于代码想要变得更加针对 Linux(它旨在在嵌入式 Linux 系统上运行),因此保持 Windows 端正常运行的开销越来越高,而且非常耗时。因此,我们#ifdef WIN32
周围有很多代码 - 我们有一个操作系统抽象层等...
我们希望消除在 Windows 上开发的需要。
我的解决方案
所以我的想法是,我以某种方式在 VM 上创建一个共享文件夹,我可以在 Windows 中打开它来编辑 rhapsody 文件并生成自动生成代码,如下所示:
- 在虚拟机中:
- 我负责所有的构建工作(gcc、make 等等...)
- 我做所有的配置控制(git)
- 我进行所有其他代码/项目编辑(使用 vscode 等...)
- 在 Windows 主机中:
- 我只需打开 rhapsody 项目,就可以编辑和保存它并让它
project/autogen
直接在 VM 上生成文件到共享文件夹中。
- 我只需打开 rhapsody 项目,就可以编辑和保存它并让它
所以我的问题是:1. 这是可行的吗 2. 这可能吗? - 如果可以我该如何从 Ubuntu VM 共享一个文件夹以便 Windows 框可以看到它?
正如我提到的,我也在尝试让 Rhapsody 在 Linux 上运行,到目前为止,我已经让它在 Centos6 上运行,但它太旧了,不好用。我接下来将尝试使用 32 位 centos8,看看我能走多远,但这可能需要一段时间。
欢迎任何其他建议。