一、准备编译运行环境
1. 2.5GB剩余磁盘空间,其中630MB用于存储源代码,剩余用于编译
2. 安装Debugging Tools for Windows(http://www.microsoft.com/whdc/devtools/debugging/default.mspx),下载安装最新版
3. 安装.NET Framework 2.0 or Above
NET Framework Version 3.5 Service Pack 1(http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&displaylang=en)
.NET Framework Version 2.0(http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en)
4. 安装Virtual PC http://www.microsoft.com/windows/virtual-pc/default.aspx。此项为虚拟机运行Singularity 必须选项,VMware从CDROM引导Singularity 会有异常。
5. 在代码根目录中,执行configure.cmd文件,会在桌面上生成一个执行Singularity RDK 2.0编译环境的快捷方式。如果不想生成快捷方式,同样可以在命令提示符窗口中执行 %ComSpec% /k base/setenv.cmd ,同样的为设置编译环境、参数等信息。
二、编译
使用msb命令执行编译,如msb Distro/Tiny.proj
目标清单如下:
- Tiny – Kernel, volume manager, shell.
- Small – Tiny plus network stack, disk drivers
- BVT – verification suite
- SPECweb99 – SPECweb99 suite and benchmarks
- World – Everything
所有的构建目标均支持清理选项 /t:Clean,如msb /t:Clean Distro/Tiny.proj
Windows 7下,会提示“系统找不到指定的路径。”,可根据提示新建0周三/1两个文件夹。
从源码仓库Checkout的代码,直接编译,会报错,原因为base/Kernel/Singularity/Eventing/EvProcessor.cs文件中部分制表符变成乱码所致,在303行左右,基本是LogStackTrace()方法中代码,小心清理干净。
再次执行msb编译,在约2小时的等待之后,提示构建完成。
此时可以在base.obj/Distros/下找到构建完成的ISO文件,如World.Debug.ApicMP.MarkSweep.Min.Concurrent.iso。
三、启动
生成的ISO镜像,可以直接通过Virtual PC 引导启动。
调试相关下回分解……