lnk2005错误
来源:互联网 发布:sql update set 编辑:程序博客网 时间:2024/06/08 11:47
源程序在没有修改的情况下,debug一切正常,在link release时报错:
Linking...
LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL:NO specification
libcd.lib(dbgheap.obj) : error LNK2005: _malloc already defined in libc.lib(malloc.obj)
libcd.lib(dbgheap.obj) : error LNK2005: __nh_malloc already defined in libc.lib(malloc.obj)
libcd.lib(dbgheap.obj) : error LNK2005: __heap_alloc already defined in libc.lib(malloc.obj)
libcd.lib(dbgheap.obj) : error LNK2005: _calloc already defined in libc.lib(calloc.obj)
libcd.lib(dbgheap.obj) : error LNK2005: _realloc already defined in libc.lib(realloc.obj)
libcd.lib(dbgheap.obj) : error LNK2005: _free already defined in libc.lib(free.obj)
libcd.lib(dbgheap.obj) : error LNK2005: __msize already defined in libc.lib(msize.obj)
libcd.lib(sbheap.obj) : error LNK2005: __get_sbh_threshold already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: __set_sbh_threshold already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_init already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_find_block already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_free_block already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_block already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_region already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_alloc_new_group already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_resize_block already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_heapmin already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_heap_check already defined in libc.lib(sbheap.obj)
libcd.lib(sbheap.obj) : error LNK2005: ___sbh_threshold already defined in libc.lib(sbheap.obj)
libc.lib(crt0init.obj) : warning LNK4098: defaultlib "libcd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
Release/zfd.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
一看就是连接错误,libcd和libc冲突,查了下msdn,找到了办法。
错误消息
默认库“library”与其他库的使用冲突;请使用 /NODEFAULTLIB:library您试图与不兼容的库链接。
运 行时库现在包含可防止混合不同类型的指令。如果试图在同一个程序中使用不同类型的运行时库或使用调试和非调试版本的运行时库,则将收到此警告。例如,如果 编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),并试图链接它们,则将得到此警告。应将 所有源文件编译为使用同一个运行时库。有关更多信息,请参见使用运行时库(/MD、/MT 和 /LD)编译器选项。
可以使用链接器的 /VERBOSE:LIB 开关来确定链接器搜索的库。如果收到 LNK4098,并想创建使用如单线程、非调试运行时库的可执行文件,请使用 /VERBOSE:LIB 选项确定链接器搜索的库。链接器作为搜索的库输出的应是 LIBC.lib,而非 LIBCMT.lib、MSVCRT.lib、LIBCD.lib、LIBCMTD.lib 和 MSVCRTD.lib。对每个要忽略的库可以使用/NODEFAULTLIB,以通知链接器忽略错误的运行时库。
下表显示根据要使用的运行时库应忽略的库。
单线程 (libc.lib)
libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程 (libcmt.lib)
libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多线程 (msvcrt.lib)
libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程 (libcd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程 (libcmtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的调试多线程 (msvcrtd.lib)
libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
最后使用/nodefaultlib:"libcd.lib" 命令链接成功。
- LNK2005错误
- LNK2005错误
- LNK2005错误
- LNK2005错误
- LNK2005错误
- LNK2005错误
- LNK2005错误
- lnk2005错误
- VC++的LNK2005错误
- VC++的LNK2005错误
- 转:LNK2005 错误
- LNK2005错误的解决
- 链接错误LNK2005
- LNK2005 连接错误解决办法
- LNK2005 连接错误解决办法
- VC LNK2005错误分析
- gsoap编译错误 LNK2005
- 关于"LNK2005"错误
- 编译器都干了些什么
- 记录一下
- 有向图中判断已选节点间的关系
- yii2 数据库复制和读写分离
- IOS开发之粒子效果
- lnk2005错误
- 1700: 做不出来踢协会!!!
- 无锁编程和有锁编程效率对比
- [POJ 2677] Tour 双调旅行商
- Codeforces 439C Devu and Partitioning of the Array
- 分享 MSDN 下载工具(Word/PDF)
- POJ3468,A Simple Problem with Integers,线段树
- 1701: 善良的国王
- MongoDB入门基本问题