warning LNK4098: defaultlib "MSVCRT" 已经被其他库声明,错误的可能解决方法
2007-06-28 21:13
295 查看
看过很多帖子都是关于屏蔽
若要使用此运行时库 请忽略这些库
单线程 (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:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
但是实际上不见得是这样。某些VC6下生成的项目在VC8中不能编译,报告上面错误的解决办法:
1.编译不报错。但程序运行时报std::string初始化错误。内存溢出。
2.照上面的措施忽略掉某些库,编译并生成项目。
3.继续报错,报告找不到某些方法 如_____???________不能链接等。
4.把刚才的忽略库去掉。加回工程库中。msvcrt.lib 然后再次编译,则顺利通过。
再运行不再报错。无法解释。已经遇到两次这种情况了。
若要使用此运行时库 请忽略这些库
单线程 (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:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
但是实际上不见得是这样。某些VC6下生成的项目在VC8中不能编译,报告上面错误的解决办法:
1.编译不报错。但程序运行时报std::string初始化错误。内存溢出。
2.照上面的措施忽略掉某些库,编译并生成项目。
3.继续报错,报告找不到某些方法 如_____???________不能链接等。
4.把刚才的忽略库去掉。加回工程库中。msvcrt.lib 然后再次编译,则顺利通过。
再运行不再报错。无法解释。已经遇到两次这种情况了。
相关文章推荐
- Sql Server"已经有程序的实例在运行"错误解决方法
- "在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误"的解决方法
- 导入EXCEL报错:"外部表不是预期的格式错误"、文件格式和扩展名不匹配,文件可能已损坏或不安全的解决方法
- nginx 下 thinkphp 502 bad Gateway + "LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法"
- FFmpeg 错误 C4996: "avcodec_alloc_frame"或者"av_free_packet"等函数被声明为已否决的解决方法
- Servlet Action is not available 错误的其他可能原因和解决方法
- 错误:因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 解决方法
- Servlet Action is not available 错误的其他可能原因和解决方法
- MS SQL Server错误21002:[SQL-DMO]用户"xxx"已经存在 解决方法
- MS SQL Server错误21002:[SQL-DMO]用户"xxx"已经存在 解决方法
- RHEL-6.1/5.4安装Heartbeat-3-0-7有可能碰见的各种错误及解决方法
- asp.net ajax 错误:"sys"未定义问题 解决的方法
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int"错误的解决方法
- MySQL错误"Out of range value adjusted for column ..."的解决方法
- python处理字符串时出现的错误'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决方法
- Perl中DBI、DBD::mysql模块的安装和可能出现的错误解决方法
- 控件必须放在具有 runat=server 的窗体标记内"错误的解决方法
- 首次在matable中安装libsvm碰到的问题和解决方法----" mxGetIr 已过时" 错误
- Eclipse启动时发生An internal error occurred during: "Initializing Java Tooling".错误的解决方法
- linux下mysql提示"mysql deamon failed to start"错误的解决方法