(为什么我要这样做:我在 Windows 上为 libpng 使用预构建的二进制文件时运气不佳(尽管经过了许多小时的反复试验),因此现在我正在尝试自己编译它。我发现这个有用的博客与此相关的帖子,附带 Microsoft Visual Studio 2008 项目文件,但遗憾的是仍然无法使用它。)
它在链接到此处找到的 zlib 二进制文件时成功编译,但在尝试将其链接到测试文件时,我收到以下信息:
C:\Documents and Settings\Administrator\My Documents>cl "C:\Documents and Settin gs\Administrator\My Documents\test.c" "C:\Documents and Settings\Administrator\M y Documents\libpng.lib" -I "C:\Documents and Settings\Administrator\My Documents\include" Microsoft (R) 32 位 C/C++ 优化编译器版本 15.00.30729.01 用于 80x86 版权所有 (C) 微软公司。版权所有。 测试.c Microsoft (R) 增量链接器版本 9.00.30729.01 版权所有 (C) 微软公司。版权所有。 /out:test.exe 测试.obj "C:\Documents and Settings\Administrator\My Documents\libpng.lib" MSVCRTD.lib(MSVCR90D.dll):错误 LNK2005:_abort 已在 LIBCMT.lib( 中止.obj) MSVCRTD.lib(MSVCR90D.dll):错误 LNK2005:_fread 已在 LIBCMT.lib 中定义( fread.obj) MSVCRTD.lib(MSVCR90D.dll):错误 LNK2005:_malloc 已在 LIBCMT.lib 中定义 (malloc.obj) MSVCRTD.lib(MSVCR90D.dll) : 错误 LNK2005: _free 已经在 LIBCMT.lib(f ree.obj) MSVCRTD.lib(MSVCR90D.dll):错误 LNK2005:___iob_func 已在 LIBCMT 中定义 .lib(_file.obj) 链接:警告 LNK4098:defaultlib 'MSVCRTD' 与使用其他库冲突;你 se /NODEFAULTLIB:库 test.exe:致命错误 LNK1169:找到一个或多个多重定义的符号
任何人都可以关心如何解决这些错误吗?