vs2012 编译 zlib 1.2.8

1. 下载
    http://zlib.net/zlib-1.2.8.tar.gz
2. 编译
    - 解压到目录,如d:\library
    - 开启VS2012的Command Prompt 
    - 进入到zlib-1.2.8\contrib\masmx86目录
    - 执行bld_ml32.bat
    - 打开工程项目zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln

    - 编译整个solution(Release)

error LNK2026: module unsafe for SAFESEH image(具体解决方案见下面)

vs2012 编译 zlib 1.2.8_第1张图片

或者使用nmake


打开“Visual Studio 命令提示(2010)”,为了使用VC2010的缺省系统配置参数;


切换目录到zlib-1.2.8\contrib\masmx86,并执行脚本bld_ml32.bat,此时会产生inffas32.obj和match686.obj,把这两个文件拷贝到源代码目录zlib-1.2.8下;


切换目录到zlib-1.2.8,执行

[plain]  view plain copy
  1. nmake -f win32/Makefile.msc LOC="-DASMV -DASMINF" OBJA="inffas32.obj match686.obj"  

经过以上三个步骤即可完成zlib1.2.8的编译。生成的库文件、dll文件就在源代码根目录下。


VS2012:error LNK2026: 模块对于 SAFESEH 映像是不安全的

http://msdn.microsoft.com/zh-cn/library/100ezk17(v=vs.90).aspx

错误消息

模块对于 SAFESEH 映像是不安全的

/SAFESEH 已指定,但某一模块与安全异常处理功能不兼容。如果要将此模块用于 /SAFESEH,则需要使用 Visual C++ .NET 2003(或更高版本)编译器重新编译该模块。

解决方法:

1.打开该项目的“属性页”对话框。

2.单击“链接器”节点。

3.单击“命令行”属性页。

4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用


你可能感兴趣的:(vs2012 编译 zlib 1.2.8)