编译环境:VS2008,ActivePerl 5.14.2.1402
如果用VC6编译, 设置编译环境用:
C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT
ntdll.mak - 对应编译成dll动态连接库, nt.mak对应编译成静态连接库;
编译成debug版本的, 需要修改do_ms.bat
打开do_ms.bat, 修改:
perl util\mk1mf.pl debug no-asm VC-WIN32 >ms\nt.mak
perl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdll.mak
perl util\mk1mf.pl debug no-asm VC-CE >ms\ce.mak
perl util\mk1mf.pl debug dll no-asm VC-CE >ms\cedll.mak
顺便记录一下一个“乌龙”:
看到openssl中的头文件都这样包含(很多开源代码都这样),
当时查了一下, 发现x509.h在crypto\x509目下, evp.h在crypto\evp下,当下就想,这样包含
该怎么设置包含路径呢,环境变量不好设,project中的include也不好设,后来在编译openssl时,
才发现include目录(乌龙),openssl的开发者用这个目录中的头文件很巧妙的解决了这个问题,
这些头文件都是些symlink,symlink完成头文件相对路径的一一映射,POSIX的东西了解太少!
原来在Window下写驱动时,经常用到IoCreateSymbolicLink,今天查了一下,在Platform
SDK中,也有CreateSymbolLink这个API,不过要Vista以上版本才支持;还有一个
CreateHardLink,这个Windows 2000以上就可以支持,但CreateHardLink只支持对文件创建
HardLink. 具体就不啰唣,MSDN比我说的清楚;