我的做法是直接将这个静态lib添加到工程中,不知道这样算不算静态连接呢,结果在连接的时候老是得到一个连接警告,但也可以生成工程。链接器工具警告 LNK4098
默认库“library”与其他库的使用冲突;使用 /NODEFAULTLIB:library
您试图与不兼容的库链接。我改为动态连接(此时指定另一个专门用于动态连接的lib,这个开发包同时提供两种lib),则完全正常。

解决方案 »

  1.   

    出现这种错误,说明你所使用的静态的Lib编译的时候使用的VC运行库不同造成的,建议你还是用动态连接比较好,可以避免一些潜在的问题,比如不同版本的VC实现(这里版本不仅仅指VC的版本,也包括相同VC版本中不同的VC Runtime DLL版本,如单线程,多线程版本等等)可能造成一些问题。
    如果一定要静态链接,可以尝试修改主程序的VC版本设置(Project Properties->C/C++ ->Code Generation -> Runtime Library)一下看能否解决,也可以尝试着打开/NODEFAULTLIB的Linker开关(Project Properties->Linker->Input->Ignore ALl Default Libraries或者Ignore Specific Library)看是否能解决问题。
    我估计这个开发包应该不是你们的(不然也不会叫开发包了),所以多半是不能修改静态Lib的编译选项了,不然直接修改Lib的编译选项打开/NODEFAULTLIB或者调整VC运行库版本再重新编译一边会容易的多。