Warning LNK4098 : defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library

转载 2006年05月30日 14:44:00

关键字:Warning LNK4098 
defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library

 

 

 

 

 

 

 

 

 

 

工程一大,包含的头文件和库也就多了,冲突一时是不可避免的。 不过还好, 只是Warning,并不影响整个工程的编译和运行。但是一些项目就要求尽量不出现Warning,因为你不知道将来项目的Bug会不会是由此而引起。严格,未雨绸缪,总是一件好事。谁也不想将来的某个时候去Debug N年前的玩意。 痛苦啊~~

 

 

 

 

 

 

 

 

 

 

MSDN上的解释为:

 

 

 

 

 

You are trying to link with incompatible libraries.

 

 

 

 

 

Important   The run-time libraries now contain directives to prevent mixing different types. You’ll receive this warning if you try to use different types or debug and non-debug versions of the run-time library in the same program. For example, if you compiled one file to use one kind of run-time library and another file to use another kind (for example, single-threaded versus multithreaded) and tried to link them, you’ll get this warning. You should compile all source files to use the same run-time library.

 

 

 

 

 

 

 

 

 

 

总之,一句话,lib之间有冲突。需要删除导入的一些libs

 

 

 

 

 

版 本

 

 

 

 

 

 

类 型

 

 

 

 

 

 

使用的library

 

 

 

 

 

 

被忽略的library

 

 

 

 

 

 

Release

 

 

 

 

 

 

单线程

 

 

 

 

 

 

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

 

 

 

 

 

 

Debug

 

 

 

 

 

 

单线程

 

 

 

 

 

 

libcd.lib

 

 

 

 

 

 

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

 

 

 

 

 

 

多线程

 

 

 

 

 

 

libcmtd.lib

 

 

 

 

 

 

libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib

 

 

 

 

 

 

使用DLL的多线程

 

 

 

 

 

 

msvcrtd.lib

 

 

 

 

 

 

libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

 

 

 

 

 

 

 

 

 

 

 

例如编译Release版本的单线程的工程,在linker的命令行加入如下的参数:

 

 

 

 

 

/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

 

 

 

 

 

当然,通过VC6.0的开发环境也可以配置。选择Project -> Setting,出现Project Setting对话框,单击Link标签,在Category下拉菜单中选择Input,在下方的Ignore libraries: 输入框中输入“被忽略的library”框中对应的libs。输入时注意当前Build是什么版本,libs之间用“,”隔开。“Ingore all default libraries”不能勾选。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章推荐

warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library

以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。VS2008,项目——属性——配...

warning LNK4098: defaultlib "MSVCRTD" conflicts with use of other libs; use /NODEFAULTLIB:library

今天在编写静态链接库的时候出现的问题。 问题描述:在VS2010下编写动态链接库,在VC6.0编译环境下调用,没有问题。于是乎我就想,既然动态链接库编译可以通过,静态链接库编译也可以通过了,于是我就...

LINK:warning LINK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library

默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library You are trying to link with incompatible librarie...

LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:librar

编译时候发现如下警告,虽然问题不大,但是出现警告多少不舒服,于是搜索了一下。 Linking... LINK : warning LNK4098: defaultlib "LIBC" confli...

LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library .

以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。   VS2008,项目——...

(转)LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library  以前经常遇到这个警告信息,因为运行并没有什么...

LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

链接时警告: LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library LINK : warning LNK409...

LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

项目遇到这样的问题,网上搜了很多资料,特整理作为笔记 解决方案1 您试图与不兼容的库链接。 重要事项 运行时库现在包含防止混合不同类型的指令。如果试图在同一个程序中使用不同类型的运行时库 ...

LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。 VS2008,项目——属...

LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

以前经常遇到这个警告信息,因为运行并没有什么问题,所以也没深究。但是耿耿于怀那个“ 0 个错误,0 个警告”的成功提示,在网上搜了一下。原来问题出在默认库的引用选择上。VS2008,项目——属性——配...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Warning LNK4098 : defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library
举报原因:
原因补充:

(最多只允许输入30个字)