静态库工程中链接静态库或动态库的warning LNK4006 4221
我在Win32静态库工程中需要用到其他静态库和动态库中的函数,我直接在静态库工程中链接的话,会出现一堆链接警告,不过暂时使用正常,具体如下:
1>libeay32.lib(fips_err.obj) : warning LNK4221: no public symbols found; archive member will be inaccessible
1>XMLUtility.lib(XMLUtility.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in rpcrt4.lib(RPCRT4.dll); second definition ignored
1>XMLUtility.lib(XMLUtility.dll) : warning LNK4221: no public symbols found; archive member will be inaccessible
1>Local.obj : warning LNK4006: "public: virtual __thiscall TiXmlDocument::~TiXmlDocument(void)" (??1TiXmlDocument@@UAE@XZ) already defined in XMLUtility.lib(XMLUtility.dll); second definition ignored
1>Local.obj : warning LNK4006: "public: virtual class TiXmlElement const * __thiscall TiXmlNode::ToElement(void)const " (?ToElement@TiXmlNode@@UBEPBVTiXmlElement@@XZ) already defined in XMLUtility.lib(XMLUtility.dll); second definition ignored
1>Local.obj : warning LNK4006: "public: virtual class TiXmlComment const * __thiscall TiXmlNode::ToComment(void)const " (?ToComment@TiXmlNode@@UBEPBVTiXmlComment@@XZ) already defined in XMLUtility.lib(XMLUtility.dll); second definition ignored
…………
注:libeay32.lib是静态库,XMLUtility.lib是动态库。
当然,我如果不在静态库工程中链接,而在使用这个静态库的工程中链接这些就没问题。不过我想最后发布的只用一个静态库+几个Dll(尽快简单),而不是给别人一堆的.lib文件
所以想弄明白那些警告是怎么回事,怎么解决?