(为什么我要这样做:我在 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:找到一个或多个多重定义的符号
任何人都可以关心如何解决这些错误吗?