在Django的开发过程中,碰到一个问题,就是所有本地库的位数必须是相同的,于是某些库需要重新编译一下,工作环境,不能用盗版程序,VC++ 2008\2010 Express版本身都不支持X64的编译,网上的文档大多也是说安装SDK以后在IDE界面的下编译。我尝试了以下方案,基本可行。
1、我的机器环境64位Windwos7专业版,首先安装了VC++ 2010 Express版。这个安装我是用最简单的在线版本,下载量是150M,如果你网速不快,最好找个ISO版本来装。
2、其次下载了Microsoft Windows SDK for Windows 7 and .NET Framework 4 (ISO) ,我选择了X64版本,这个东西安装前,必须把所有的VC 2010 redisbute包卸载了,才能成功安装
3、到开始菜单的Windows SDK 7.1目录找Windows SDK 7.1 Command Prompt命令行入口,从这个入口进去用nmake /f makefile.vc 作编译可以得到64位编译版本,不过有时候可能是makefile的原因,可能x86的编译结果也会同时出来,这个时候需要用dumpbin指令看一下编译dll的信息
4、dumpbin指令属于VC++的组件,所以需要用VC++的Visual Studio 命令提示命令行入口来进。指令格式:dumpbin /headers proj.dll。出来的信息满多的,位数信息在刚开始FILE HEADER VALUES下面第一行machine后面。比如下面这样
PE signature found File Type: DLL FILE HEADER VALUES
14C machine (x86)
5 number of sections
4F66E3F3 time date stamp Mon Mar 19 15:44:51 2012
0 file pointer to symbol table
0 number of symbols
E0 size of optional header