好不容易装好VS2008当然要测试一下~~
编译了几个东东测试:nasm 2.0rc3,yasm,openssl 0.9.8g,zlib1.2.3,apache2.2.6/2.3-dev,libctiny。
除了apache外都能够直接正常编译。
不过/wp64的参数被提示警告并且将在以后版本移除。
Apache无法正常编译的原因是Apr和VS2008自带的Windows SDK不兼容,VS2008自带的Windows SDK是6.0A(x86/x64)和5.0(I64)。而Apr只能在Windows Server 2003 R2及以下的SDK上正常编译。
VS2008的Command Prompt x86默认指定的SDK是6.0A的及Vista的SDK。所以我们只要替换掉Command Prompt中INCLUDE和LIB里面SDK 6.0A的路径为Windows Server 2003 R2 SDK的路径就可以正常编译了~个人认为这样可能比较好一点。替换方法:
用set INCLUDE和set LIB查看当前的include和lib路径,并复制下来,把其中Windows SDK的路径替换掉,再用set INCLUDE=新路径和set LIB=新路径来设置。
另外还有一个方法就是修改apr.hw文件,在httpd源代码目录\srclib\apr\include里面。
修改第二个#define _WIN32_WINNT 0×0400/0×0500 为0×0600。(注:2.2.6是0×0400,2.3-dev是0×0500)
然后的#define APR_HAVE_IPV6 0为#define APR_HAVE_IPV6 1 (如果不修改这里2.2.6编译还是要出错,2.3-dev未测试)
不过这样就启用了IPv6的支持。我在Windows 2003 R2 SP2下添加系统ipv6支持后Apache无启动~
提示“在 getsockopt 或 setsockopt 调用中指定的一个未知的、无效的或不受支持的选项或层次 :make_sock: for address [::]:80, apr_socket_opt_set: (IPV6_V6ONLY)”的错误
所以在Apache的设置文件中指定Listen 0.0.0.0:端口。
总的来说VS2008还是不错,编译出来的文件大部分比VS2005要小点,但也有一部分要大一些。
文章关键字 ‘vs2008’
VS2008初体验~
2007年11月29日,星期四安装VS2008遇到问题及解决
2007年11月28日,星期三VS2008出来了于是决定尝鲜,由于电脑上已经装有VS2005,以及系统盘空间不够,没办法只好卸掉。
这时遇到第一个问题,由于VS2005装了SP1补丁,为了节约空间我删掉了SP1补丁的msp文件,造成卸载初始化出错提示找不到vs_setup.msi。
查了些资料:
找到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\ E87FC36D048915F4583BABC49D768549位置,把它的Patches子项删掉,然后再运行安装程序就可以。
然后卸载成功。
继续安装VS2008,第一步安装Microsoft .NET Framework 3.5出错。于是我把机器上的Microsoft .NET Framework 2.0卸载,重试还是出错。然后尝试安装Microsoft .NET Framework 3.0还是出错。后来搜索了一些资料,发现是WIC(Windows Imaging Component)的原因。单独下载WIC安装发现注册表无法访问造成的。于是继续google,后来在MSDN论坛上找到了解决方法:
在命令提示符中运行以下命令恢复注册表默认权限:
secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose /areas REGKEYS
更多资料可以查看kb313222。
这下终于可以正常安装了,希望能够帮助遇到同样问题的朋友。


