在2010以Release方式编译项目时出现的错误
来源:互联网 发布:服装进销存软件免费 编辑:程序博客网 时间:2024/05/17 01:30
今日使用vs2010编译项目,碰到这样一个错误:
-----------------------------------------------------------------------------------------------------
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _strstr 已经在 libcmtd.lib(strstr.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _strncpy 已经在 libcmtd.lib(strncpy.obj) 中定义
1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z ) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>msvcrtd.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z ) 已经在 libcmtd.lib(typinfo.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: __resetstkoflw 已经在 libcmtd.lib(resetstk.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: __CrtDbgReportW 已经在 libcmtd.lib(dbgrptw.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _wcslen 已经在 libcmtd.lib(wcslen.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _wcscpy_s 已经在 libcmtd.lib(wcscpy_s.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _malloc 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _calloc 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: __recalloc 已经在 libcmtd.lib(dbgheap.obj) 中定义
1>msvcrtd.lib(MSVCR80D.dll) : error LNK2005: __setmbcp 已经在 libcmtd.lib(mbctype.obj) 中定义
-----------------------------------------------------------------------------------------------------
解决方案中包含两个项目,
项目1生成一个静态链接库:pro1.lib;
项目2是一个exe项目,编译时链入pro1.lib。
看了下两个项目的编译属性中“运行时库”选项,分别是
项目1:多线程调试 DLL (/MDd)
项目2:多线程调试(/MTd)
先将项目2改成 “多线程调试 DLL (/MDd)”,编译,错误变成:
1>c:/program files/microsoft visual studio 8/vc/atlmfc/include/afx.h(24) : fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
在项目2中加入预编译符 “_AFXDLL”
编译通过!
看来当不同项目运行时库选择不同时,就会出现类似msvcrtd.lib(MSVCR80D.dll) : error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义的错误
具体原因分析中……
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hongjiqin/archive/2009/04/23/4104959.aspx
- 在2010以Release方式编译项目时出现的错误
- 用VS2005在Release配置下编译出现清单文件的错误的解决方法
- 在编译VS2005时出现的错误
- 在编译VS2005时出现的错误
- VS2005 编译Release版本出现清单文件的错误
- Maven项目在编译及导入Eclipse时出现的错误汇总处理
- Maven项目在编译及导入Eclipse时出现的错误汇总处理
- 在 VS 中编译项目时出现 error LNK2005 链接错误的解决办法
- 在 VS 中编译项目时出现 error LNK2005 链接错误的解决办法
- Maven项目在编译及导入Eclipse时出现的错误汇总处理
- 项目打release时遇到的错误
- 使用vs2010编译项目时出现COFF错误的解决方案
- 用VS2010编译C++项目时出现这样的错误:
- 关于VS2013 项目编译时,出现C1083的错误
- pomelo在android编译时出现的错误解决方案
- 在编译oc中protocol时出现的错误
- 在编译hbase代码出现的错误
- VS2012 Release编译时出现 “error LNK2026: 模块对于 SAFESEH 映像是不安全的。” 错误提示的解决方法
- Apache服务器启动错误
- Linux 环境变量的设置、查看方法
- 《老男孩》网络爆红 非常短片成网剧推手
- Java访问权限修饰符笔记
- linux内存检测
- 在2010以Release方式编译项目时出现的错误
- 数三退一
- Free命令详解和释放linux Cache(转载)
- android BMI实例改进
- “GCC连接静态库成功,G++连接静态库不成功”的解决方法
- How to install Git on RedHat Enterprise 53
- C#实现字符串相似度比较[Levenshtein Distance算法].
- menu.addIntentOptions 添加动态菜单
- Excel操作 孟子e章