如何正确配置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"

  1. 开始 -> 程序 -> Visual Studio 9.0 Express Edition-> Visual Studio Tools -> 命令行:
  2. 在打开的命令行中键入"RoseRT",启动Rose
  3. RoseRT中选择菜单Tools -> TargetRTS Wizard.
  4. 选择C++,Next.
  5. 从左侧列表选择 NT40T.x86-VisualC++7.0
  6. 按 Duplicate 按钮,复制出一个新的Configuration.
  7. 在弹出的心对话框中, 选中Libset复选框,改为 x86-VisualC++9.0Express.
  8. 连点三次next,略过一大堆废话,返回第5步界面.
  9. 选中你新添加的Configuration.
  10. 点右侧 Configuration... 按钮.
  11. 在下方 Browse Configuration 内,双击打开setup.pl 编辑内容为本文末内容(请根据VC安装路径自作调整,如有困难请参考http://www.perl.org初步了解Perl),保存.
  12. 点击 Build 按钮,编译Perl脚本.
  13. 连点两次next,开始编译.
  14. 编译通过后,恭喜,可以使用新版本的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';

     

     

posted @ 2011-02-03 19:37  Ray Wu Y  阅读(1436)  评论(0编辑  收藏  举报