Ruby 在 VC Express 2005 下的编译
2006-01-08 18:07
441 查看
编译前步骤
从CVS取下的源码保存在D:/Src/ruby/ruby下。建立两个目录分别是:D:/Src/ruby/build,D:/Src/ruby/install。分别用于保存编译Ruby时的中间文件和最终的安装文件。
编译器使用的是Visual C++ Express 2005(msvc80),Platform SDK是Windows Server 2003 SP1 SDK。两者均可从微软的网站中免费获得。
值得注意的是,Ruby的源码目录中应避免出现空格,根据Ruby的官方说法,这是因为NMAKE的!INCLUDE指示符有个小Bug。
开始编译
1. 由于VC Express 2005中的C++编译器已经不使用 /G 和 /g- 选项了,所以在生成Makefile之前需要修改D:/Src/ruby/ruby/win32/Makefile.sub文件:注释掉:
PROCESSOR_FLAG = -G$(PROCESSOR_LEVEL)
并修改优化选项为:
OPTFLAGS = -O2b2x
如果不喜欢编译器警告源码中使用了非标准的POSIX函数,可以在CFLAGS中加上-D_CRT_SECURE_NO_DEPRECATE.
2. 生成Makefile
D:/Src/ruby/build>vcvars32
D:/Src/ruby/build>"C:/MSVS8/Common7/Tools/vsvars32.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
D:/Src/ruby/build>../ruby/win32/configure --prefix=D:/Src/ruby/install
Creating Makefile
confargs.c
type `C:/MSVS8/VC/BIN/nmake.exe' to make ruby for mswin32.
D:/Src/ruby/build>dir
驱动器 D 中的卷是 WORK
卷的序列号是 68FB-D699
D:/Src/ruby/build 的目录
2006-01-07 21:50 <DIR> .
2006-01-07 21:50 <DIR> ..
2006-01-07 21:50 711 Makefile
1 个文件 711 字节
2 个目录 7,421,976,576 可用字节
3. 修改MAKE环境变量
MAKE = C:/MSVS8/VC/BIN/nmake.exe
D:/Src/ruby/build>set MAKE=C:/MSVS8/VC/BIN/nmake.exe
注意:目录的分隔符必须写成 / 而不是 / ,这是由于编译Ruby时需要使用的中间解释器miniruby会将 / 解释为转义符,而不是目录分隔符。
4. 执行nmake开始编译。
D:/Src/ruby/build>nmake
5. 执行nmake test执行回归测试。
D:/Src/ruby/build>nmake test
Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
test succeeded
6. 执行nmake install进行安装。它将生成的Ruby解释器和Ruby库复制到指定目录,并在该目录下生成文档。最后的安装统计:
D:/Src/ruby/build>nmake install
... ...
Files: 102
Classes: 339
Modules: 84
Methods: 2947
Elapsed: 86.125s
7. 最后,由于VC Express 2005的Side by Side Assembly特性,还需要将ruby.exe.manifest,rubyw.exe.manifest和msvcr80-ruby19.dll.manifest复制到D:/Src/ruby/install/bin目录下。
相关文章推荐
- QT-4.4.1在VC++ 2005 Express环境下的安装,编译,配置
- VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPA
- jsoncpp vc2005 编译测试
- vc2005编译WTL8的例子时报错 fatal error CVT1100: 重复的资源。type:MANIFEST, name:1, language:0x0409
- VC 6.0工程转VC 2005工程的编译错误----消息处理宏
- VC2005环境下boost_1_39_0编译手记
- VC 2005 下如何编译安装并开发 QT 4.4.0 应用程序
- VC++ 2005编译出程序出现“应用程序配置错误”的解决方法
- vc2005 使用Boost库的编译步骤.
- vc2005编译程序成功后运行不了提示“没有找到MSVCP80D.dll...“的解决方法
- Boost 1.46.1,vc2005, 编译
- vc++ 2008 express 编译 gvim 的方法
- 使用VC2005编译静态应用程序的方法
- VC++ 2005编译出程序在XP下执行出错的解决方法
- VC2005 + SQLite 3.6.3 编译、测试开发手记
- 关于x264 2011在VC2005及以上版本的编译
- VC2005下的编译错误
- 使用VC2005编译真正的静态Qt程序 good
- vc2010转化vc2005或低版本VC过程后,编译错误 解决方法
- Boost 1.46.1 - vc2005下编译