关于vc中的连接问题

韩雷 2003-07-12 10:34:23

我在vc7下正确编译一个工程后,在连接时出现下面这个错误:
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in MSVCRTD.lib(MSVCR71D.dll)

可是我发现LIBCMTD.lib和MSVCRTD.lib都是在vc7\lib里,在vc.net开发环境里也将vc7\lib设置为默认的库文件,而且在连接其他工程时都没出现以上错误,不知这是为什么?

会不会是这两个lib不能同时用?

请给我指点一下!

万分感谢!!!
...全文
39 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueSky2008 2003-07-13
  • 打赏
  • 举报
回复
LIBCMTD.lib 是调试用的支持多线程的静态库。
MSVCRTD.lib 是MSVCRTD.LIB的引入库。
这两个库是不应该混用的。
但实际上你把这两个库都设置成默认的库,并不会出现问题,这是应为编译器会自动的根据不同的编译模式,选择不同的库。
你也可以通过设置命令来强制编译器选用某个库或多个库,我估计是你在这个工程中改变了这些命令。
这几个命令是:
Command Line Project Settings Use Lib
/MD Multithreaded DLL MSVCRT.LIB
/MDd Debug Multithreaded DLL MSVCRTD.LIB
/ML Single-Threaded LIBC.LIB(does not provide multithread support.)
/MLd Debug Single-Threaded LIBCD.LIB
/MT Multithreaded LIBCMT.LIB
/MTd Debug Multithreaded LIBCMTD.LIB

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧