huyutian

他强由他强,清风拂山岗;他横由他横,明月照大江。他自狠来他自恶,我自一口真气足

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  20 随笔 :: 47 文章 :: 22 评论 :: 0 Trackbacks
一、了解64位系统
关于64位系统有很多术语,包括x64,IA-64,Intel 64,AMD64等等。花时间了解了一点其中的差异。根据兼容性大致可以分为两类IA-64和Intel 64。
IA-64:或者说叫Itanium(安腾)系列,是Intel和HP公司开发的一个64位体系架构,主要用于服务器市场,与x86体系不兼容。
Intel 64
:包括EM64T / AMD64 / x86-64 / x64等,它是对x86体系架构的扩展,并向后兼容。由于名称很多,所以很容易混淆。具体了解可参见WIKI
要想了解64位C++编程,请看这里
二、编译第一个64位程序
近期将个人电脑升级到Win7系统,编译器也换成了Visual Studio 2010。有一个Project需要用到zlib库。于是从http://www.zlib.net/下载了一份最新的zlib1.2.7
但是在编译64位动态库时却出错了。
根据我的分析,应该与PreBuildEvent预处理环境有关。因为我在win32环境下编译就没有问题。为啥在x64环境下PreBuildEvent找不到"..\..\contrib\masmx64"路径呢?那么到底在执行PreBuildEvent操作时,当前的目录是哪里了?查了半天资料没找到,在郁闷的时候我想到了一个办法。嘿嘿,关键时候还得靠自己啊。PreBuildEvent操作时执行的其实是一个多行的批处理命令(当然是支持宏替换的)。我直接在PreBuildEvent批命令中加入了一行

运行结果是

可以看出,X64 PreBuildEvent执行时的当前目录是"D:\Projects\zlib-1.2.7\contrib\vstudio\vc10",检查一下zlib的目录结构,所以将"cd ..\..\contrib\masmx64"这一行修改为"cd ..\..\masmx64"就ok了。
posted on 2012-10-05 17:15 胡雨田 阅读(667) 评论(0)  编辑 收藏 引用 所属分类: 编程技巧

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理