好不容易装好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 0x0400/0x0500 为0x0600。(注:2.2.6是0x0400,2.3-dev是0x0500)
然后的#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要小点,但也有一部分要大一些。
1 Responses to VS2008初体验~