如何正确配置Rose RT compilation使用高版本VC++编译器
当我们使用高版本VC++编译器支持RoseRT开发时,编译会报:
rtrun Error: Failed to create process for: nmake ...
Error,
因为RoseRT对VC++的版本最高只支持到7.0,当我们意欲使用更高版本的VC++编译器时,TargetRTS没有相应的配置,故找不到nmake程序进行编译。So,按照如下的解决方法,手动新增一个TargetRTS项来为RoseRT寻找编译器提供依据(以Visual C++ 2008 Express Edition为例)。
前提: 确保nmake.exe所在目录已经加入到系统环境变量中,路径为:"X:\Program Files\Microsoft Visual Studio 9.0\VC\bin"
- 开始 -> 程序 -> Visual Studio 9.0 Express Edition-> Visual Studio Tools -> 命令行:
- 在打开的命令行中键入"RoseRT",启动Rose
- RoseRT中选择菜单Tools -> TargetRTS Wizard.
- 选择C++,Next.
- 从左侧列表选择 NT40T.x86-VisualC++7.0
- 按 Duplicate 按钮,复制出一个新的Configuration.
- 在弹出的心对话框中, 选中Libset复选框,改为 x86-VisualC++9.0Express.
- 连点三次next,略过一大堆废话,返回第5步界面.
- 选中你新添加的Configuration.
- 点右侧 Configuration... 按钮.
- 在下方 Browse Configuration 内,双击打开setup.pl 编辑内容为本文末内容(请根据VC安装路径自作调整,如有困难请参考http://www.perl.org初步了解Perl),保存.
- 点击 Build 按钮,编译Perl脚本.
- 连点两次next,开始编译.
- 编译通过后,恭喜,可以使用新版本的VC++进行RoseRT的编译了.
setup.pl$vcRoot = "C:\\Program Files\\Microsoft Visual Studio 9.0";
$commonRoot = "$ENV{'VS90COMNTOOLS'}";
$WindowsSdkDir="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A";
$ENV{'INCLUDE'} = "$vcRoot\\VC\\INCLUDE"
. ";$WindowsSdkDir\\INCLUDE";
$ENV{'LIB'} = "$vcRoot\\VC\\LIB"
. ";$WindowsSdkDir\\LIB";
$ENV{'PATH'} = "$vcRoot\\Common7\\IDE"
. ";$vcRoot\\VC\\BIN"
. ";$commonRoot"
. ";$ENV{'PATH'}";
$include_opt = '/I';
@make_args = ( '/nologo', '/f', '../src/main.nmk' );
$object_ext = '.OBJ';
$preprocessor = "cl /nologo /EP /P";
$target_base = 'NT40';
$supported = 'No';