在Rhapsody之外编译Rhapsody生成的代码

时间:2018-04-12 18:23:25

标签: uml rhapsody

我已经创建了一些狂想曲模型作为我工作项目的一部分。我们创建了类图,状态图和面板图,并使用模拟测试了模型。在模拟之后,我们从工作模型中自动生成C ++代码。 所以我的问题是有一种方法可以使用外部编译器为Rhapsody生成代码,例如:Microsoft Visual Studio?

4 个答案:

答案 0 :(得分:2)

Rhapsody总是使用外部编译器来编译代码(无论是模拟还是不编译),即Rhapsody没有附带编译器,它与调用外部编译器的“适配器”一起使用。适配器层包含告诉Rhapsody如何为特定编译器生成代码的属性,例如Visual Studio,VxWorks,Cygwin / gcc。当您生成make并运行代码时,Rhapsody会同时创建main和makefile,它会运行makefile来编译代码,然后运行生成的.exe。没有什么可以阻止你在Rhapsody之外运行编译。关键是它将链接您的代码与相关构建环境的OxF适配器框架代码(这抽象出线程,互斥体等概念)。查看您用于构建的配置的“设置”选项卡。 “环境”下拉列表中应该有一个MSVC选项。这是Visual Studio。注意:使用MSVC选项时,还需要设置属性以说明哪个版本。 CPP_CG :: MSVC :: IDEVersion,即服务Rhapsody确实允许你想要的主要事情是让Rhapsody在代码生成步骤中更容易构建makefile。这是“标准”方式。还有一个平台集成,Rhapsody创建VS项目文件。这是否有效可能取决于版本号等。我首先尝试标准的模型驱动方式,这实际上是命令行编译器调用。

答案 1 :(得分:0)

要在目标上运行Rhapsody代码,还需要编译此目标的框架。为此,您需要为此目标编写适配器。 Rhapsody文件夹中有一个pdf,用于解释所有步骤。

对于Visual Studio或Cygwin,已经有一个准备好的框架。您可以在组件中选择它。

如果您只想在Visual Studio中使用生成的代码,请右键单击您的配置并选择"更改为xxx ..."。这将为您创建一个包含所有源和Makefile的Visual Studio或Eclipse项目。

答案 2 :(得分:0)

听起来你喜欢Rhapsody RTOS适应层问题。背景:Rhapsody代码生成遵循模型驱动的体系结构方法,以创建独立于平台的模型(与平台特定模型分离)(如果将平台定义为嵌入式C ++目标)。如果使用Rhapsody Developer生成状态机等代码,则事件的事件队列存储在线程上,您可以使用端口和接口等UML2概念,并将复合类标记为活动(使其在线程中运行)。提供线程(和定时器)等方面的代码的实现由OxF(对象 - 执行框架)适配器层(一组提供RTOS特定代码的类)提供。 Rhapsody有一套开箱即用的RTOS,但是客户端可以为新目标创建一个新的适配器层,并将其添加到Settings下拉列表中(这还包括指定属性以告诉Rhapsody如何构建/制作RTOS)。适配器层是一个与应用程序代码静态链接的库,因此您需要构建此库以及提供代码。请参阅:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=969f1342-9137-406d-81f5-7f082a7c646d#fullpageWidgetId=W7b708910613a_41a1_aa47_1cc06a5020ec&file=d5a0d94e-b3a0-494a-98c0-1238fff2ecc3中的Rhapsody Framework简介(OxF)。这假设您正在使用完整的OxF。有些方法可以在没有RTOS(最小的OxF或使用Willert工具包)的情况下构建,这些方法可能适用于某些领域(受限微控制器等),我不太了解您的环境以了解它是否可行。第一个问题是目标是否支持完整的RTOS模式,或者是否需要最小的RTOS方法。后者限制了你的模型,因此你通常需要从事先了解的事情开始。

答案 3 :(得分:0)

Rhapsody生成一个makefile来构建项目并将其与Rhapsody框架链接。我强烈建议您重新使用此Makefile从外部构建项目,而不要尝试在其他位置重新创建它。

以洗碗机为例,在Rhapsody IDE中打开项目并“制作”该项目。注意,输出窗口将使用生成的makefile(EXE.mak)和该环境的预先存在的脚本(msvcmake.bat)打印用于构建项目的命令。例如:

“” C:\ ProgramData \ IBM \ Rational \ Rhapsody \ 8.4 \ Share“ \ etc \ msvcmake.bat EXE.mak构建x86 VC10”

您可以使用类似的命令在命令行上构建项目。

打开一个终端并转到Dishwasher项目的配置目录(C:\ ProgramData \ IBM \ Rational \ Rhapsody \ 8.4 \ Samples \ CppSamples \ Dishwasher \ EXE \ Host)

这是用于重建项目的同一命令的修改版本:

C:\ ProgramData \ IBM \ Rational \ Rhapsody \ 8.4 \ Share \ etc \ msvcmake.bat EXE.mak重建x86 VC10

供参考:

可以在属性中找到每个环境的项目构建命令:

CPP_CG:[环境]:调用制作

在属性中指定框架构建命令:

CPP_CG:[环境]:buildFrameworkCommand

在某些情况下,您可以从

复制框架库

C:\ ProgramData \ IBM \ Rational \ Rhapsody \ 8.4 \ Share \ LangCpp \ lib

如果要将所有内容移动到新位置,则必须遵守makefile依赖性并将目录结构保留在新位置。

例如,可以将Framework和Project源及其makefile复制到远程目标并在其中构建它。