在Visual Studio 2008的环境下Build SSCLI 2.0(ROTOR)

快速指南:

下载文件包:  SSCLI 需要修改的文件包

而后在Visual Studio 2008 命令提示符下在SSCLI 2.0 根目录中运行 env.bat,而后运行buildall 即可

目标描述:

在Visual Studio 2008 + Windows XP Eng 的环境中Build SSCLI 2.0

运行环境:

Window XP English + Visual Studio 2008

步骤描述:

1. 安装ActivePerl

2. 按照Jemery的步骤修改对应的文件 (仔细!)

3. 在 Visual Studio 2008 命令行中 开始->Visual Studio 208 -> Visual Studio 工具 -> Visual Studio Command Prompt (由于笔者为英文系统,中文不准确,请根据个人情况自行参考)

a. 切换到SSCLI所在根目录,运行env.bat

b. 运行buildall

NOTICE:

请仔细而细致的按照Jeremy Blog中介绍的步骤执行,然而总可能还是有一些问题需要注意

1. env.bat 和 buildall.bat 都应该在Visual Studio 2008的命令提示行中运行(Visual Studio 2008 Command Prompt)

2. 如果安装碰到问题,请重启后重新安装,因为env.bat中设置的一些环境变量,重启后会清空,消除了一些不必要的问题

笔者就遇到 Get("ROTOR_WINSDKDIR")找不到路径的问题,百思不得其解,费尽心思去看env.core.pl也觉得莫名其妙,重启后,按照步骤(3,4)执行,问题消失。

3. 可能存在编码字符不匹配的提示,按照clr/src/buildd.err文件中的提示修改即可。

FILE:

为了方便大家学习ROTOR, 同时也避免少走弯路,将自己修改的文件打成包提供给大家下载

地址:SSCLI 需要修改的文件包

下载后覆盖SSCLI2.0根目录下的文件即可

编译完成后,编译Hello.cs 测试是否成功。

1> cd samples

2> cd hello

3> csc hello.cs

4> clix hello.exe

如果出现Hello World!, 恭喜您已经成功的安装了SSCLI,请按照HowTo的介绍来学习ROTOR. 祝您玩得开心

参考资料:

BATCH FILE Reference: http://technet.microsoft.com/en-us/library/bb491071.aspx

BATCH Help: http://www.computerhope.com/batch.htm

PERL 手册: http://man.ddvip.com/web/perl/perl10.htm

Jeremy:http://blogs.msdn.com/jeremykuhne/archive/2008/02/19/sscli-2-0-and-visual-studio-2008.aspx

 

Have Fun!

Tag标签: SSCLI

posted on 2008-05-13 01:07 xwang 阅读(321) 评论(10)  编辑 收藏

评论

#1楼  2008-05-14 08:23 lbq1221119      

很好 呵呵
你在编译成功之后,查看了这个环境变量到底是哪个路径没有?   回复  引用  查看    

#2楼  2008-05-14 08:24 lbq1221119      

非常欢迎你把研究sscli的心得发过来,一起学习一起进步 :)   回复  引用  查看    

#3楼 [楼主] 2008-05-14 09:52 xwang      

谢谢关注,环境变量是在win.bat + env.core.pl进行设置的,而后调用mswin32.Starup.pl,实际上env.bat运行后所设置都是临时的,并没有设置全局的环境变量。
这也是为什么每次运行前需要运行env.bat的原因。
而为什么会提示错误可能是之前因为运行失败而后留下了一些临时的全局设置影响了编译的继续进行,重启后问题解决。

大家一起进步 :)
  回复  引用  查看    

#4楼  2008-05-15 00:32 Angel Lucifer      

请问,System.Threading.Thread.SpinWait()这个方法的具体实现代码是什么?
俺倒是找到实现代码了,可是YieldProcessor()这个方法貌似是由编译器来实现的,哪位大侠能给解答下?

Mono的实现比较有意思,直接用Sleep(0)来实现。偶认为这个实现效率不够高,实际测试也是如此。哪位老大能高速俺该如何高效的实现YieldProcessor()?   回复  引用  查看    

#5楼  2008-06-13 14:14 seatune [未注册用户]

在用Window XP SP3中文版+ Visual Studio 2008 编译SSCLI2.0时发生错误"Could not get platform OS version"。
打开env.core.pl文件后找到:
if (Windows()) {
# The output of ver looks like:
#
# Microsoft Windows XP [Version 5.1.2600]
#
# (including the empty line before)
...
...
}
将这段改为:
if (Windows()) {
$platform_os_version = "5.1";
}
编译通过。   回复  引用    

#6楼 [楼主] 2008-06-29 14:46 xwang      

TO seatune@263.net:
谢谢你的补充。 :)   回复  引用  查看    

#7楼  2008-08-04 17:35 年年 [未注册用户]

"请按照HowTo的介绍来学习ROTOR"

请问这个howto在哪里啊?
  回复  引用    

#8楼 [楼主] 2008-08-04 17:43 xwang      

HowTo Should be in the directory of SSCLI.   回复  引用  查看    

#9楼  2008-08-18 00:32 reims [未注册用户]

奇怪了, 我的怎么都不行, 错误如下, 请大家帮我看看:)

2>vm\threads.cpp : error C2220: warning treated as error - no 'object' file generated

2>vm\threads.cpp : error C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss

2>NMAKE : U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\cl.EXE"' : return code '0x2'

1>vm\threads.cpp : error C2220: warning treated as error - no 'object' file generated

1>vm\threads.cpp : error C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss

1>NMAKE : U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\cl.EXE"' : return code '0x2'

1>NMAKE : U1073: don't know how to make 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\clr\lib\chk\rotor_x86\cee_wks4.lib'

1>NMAKE : U1073: don't know how to make 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\clr\lib\chk\rotor_x86\cee_wks_dac.lib'

1>NMAKE : U1077: 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\binaries.x86chk.rotor\sdk\bin\ilasm.EXE' : return code '0x1'

2>toolbox\storeadm\@obj1c\rotor_x86\csc.rsp(1) : error fatal error CS0007: Unexpected common language runtime initialization error -- 'The specified module could not be found.

1>toolbox\caspol\@obj1c\rotor_x86\csc.rsp(1) : error fatal error CS0007: Unexpected common language runtime initialization error -- 'The specified module could not be found.

2>NMAKE : U1077: 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\binaries.x86chk.rotor\csc.EXE' : return code '0x1'

1>NMAKE : U1077: 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\binaries.x86chk.rotor\csc.EXE' : return code '0x1'

2>toolbox\isymmanagedwrapper\@obj1c\rotor_x86\csc.rsp(1) : error fatal error CS0007: Unexpected common language runtime initialization error -- 'The specified module could not be found.

2>NMAKE : U1077: 'D:\Work\ProjectTest\Res\sscli20_20060311\sscli20\binaries.x86chk.rotor\csc.EXE' : return code '0x1'

  回复  引用    

#10楼 [楼主] 2008-08-18 10:03 xwang      

@reims
请修改提示错误中的文件编码格式
用记事本打开,另存为 -> ASCII/Unicode (选择Unicode)再试一下吧
:)   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-13 16:39 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 




导航

公告

Free Counter
享受技术带来的乐趣 Personal Site
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

与我联系

搜索

 

常用链接

留言簿(2)

我参与的团队

我的标签

随笔分类

随笔档案

CommunityServer

Friends

收藏

最新评论

阅读排行榜

评论排行榜

60天内阅读排行