总结如下:
1、reactos是一款全面兼容winapi接口的供学@H_403_15@习研究目的的操作系@H_403_15@统,属于自由@H_403_15@软件,同@H_403_15@时也是@H_403_15@开源的(www.reactos.org)。另外,reactos与wine@H_403_15@项目是属于同一@H_403_15@拨人@H_403_15@开发的,所以@H_403_15@这两者分享@H_403_15@许多共同的成果。
2、从reactos的源码安装时,是采用mingw32-gcc来编译源代码的。(最少需要mingw32-gcc和mingw32-g++,以及mingw32-make等模块,另外对mingw32版本也有要求)。从官方文档中获知,编译reactos的mingw32-gcc可以是交叉编译器,也可以是本地编译器。
3、我@H_403_15@编译的reactos版本是0.2.8,可从网上下@H_403_15@载reactos0.2.8-REL-src.zip文件。
4、当我使用版本@H_403_15@为3.4.2的本地的mingw来@H_403_15@编译reactos@H_403_15@时,中途@H_403_15@报错,@H_403_15@说gcc版本可能不符合要求!因此我便接着采用版本@H_403_15@为3.4.4的本地的mingw来重新@H_403_15@编译reactos,@H_403_15@这时中途又@H_403_15@报错了,是一个g++的@H_403_15@头文件@H_403_15@错误,error信息如下:
E:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits
/stl_uninitialized.h: In member function `void std::vector<_Tp,_Alloc>::reserve
(size_t) [with _Tp = KeyMap,_Alloc = std::allocator<KeyMap>]':
E:/mingw/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++/3.4.4/bits
/stl_uninitialized.h:82: warning: '__cur' might be used uninitialized in this fu
nction
(从网上找到一个网页,也是反映同样的这个错误!http://www.reactos.org/forum/viewtopic.php?t=1073),有@H_403_15@开发者回@H_403_15@复中@H_403_15@说,需要使用mingw32-gcc3.4.3版本,或者升@H_403_15@级到mingw32-gcc4.0版本。
5、于是便找到了mingw4.0的二@H_403_15@进制安装版@H_403_15@进行install后,再次@H_403_15@编译reactos@H_403_15@时,又@H_403_15@报了一大堆@H_403_15@错误,都是与mingw-winapi相@H_403_15@关的,可以断定是@H_403_15@这个mingw4.0的二@H_403_15@进制@H_403_15@发布版好象不太全面。因此如果要想继续使用mingw4.0来编译reactos,那么只能自己先编译出完整的mingw4.0;但这也太麻烦了,于是找mingw32-gcc3.4.3,没找着。
6、最后在http://www.reactos.org/wiki/index.php?title=HOWTO/setup_a_build_environment_for_Windows&redirect=no@H_403_15@页面中@H_403_15@获知,reactos@H_403_15@开发组已@H_403_15@经集成并建立了一个reactos的@H_403_15@编译环境,叫做ReactOS Build Environment (RosBE),于是乎,download下ReactOS Build Environment 0.1-3.4.2.exe文件,安装后,@H_403_15@发现它集成的mingw-gcc版本也是3.4.2的。重新编译reactos,成功!!!注意!编译大概需要1.5G的磁盘空间。
7、另外一篇@H_403_15@关于在linux系@H_403_15@统上@H_403_15@编译reactos的文章的link是:http://www.reactos.org/wiki/index.php/HOWTO/setup_a_build_environment_for_Linux