error LNK2019: 無法解析的外部符號的問題


編譯通過,連接失敗,我知道是由於OD_Utl_XML_RegisteredElement聲明了但沒有實現的原因,但不知道怎么改,請高手看看;

出現問題的代碼片段:(及OD_Utl_XML_RegisteredElement類的聲明)


template<class T, class C>
class __declspec (dllexport) OD_Utl_XML_RegisteredElement :
  public OD_Utl_XML_Element
{
  public:
     OD_Utl_XML_RegisteredElement(T &arg,
                                  char *name, 
                                  OD_Utl_XML_SaxParser &parser) :
        OD_Utl_XML_Element(name, parser.callStack()),
        m_arg(arg) {
        parser.elementMap().insert(OD_Utl_XML_ElementPair(this->Name(), this));
     }     
     T &Arg() {
      return m_arg;
     }
     
  protected:
     virtual bool characters(const ACEXML_Char *ch,
                             int start,
                             int length ACEXML_ENV_ARG_DECL) {
        if (! OD_Utl_XML_Element::characters(ch, start, length)) {
             return false;
        }
        C converter(this);
        converter.content(ch, start, length, m_arg);
        return true;
     }
     
  protected:
     T &m_arg;
};



1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: virtual __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlSessionTimeoutConv>::~OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlSessionTimeoutConv>(void)" (__imp_??1?$OD_Utl_XML_RegisteredElement@IVDiameterXmlSessionTimeoutConv@@@@UAE@XZ),該符號在函數 __catch$?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z$0 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: virtual __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class OD_Utl_XML_ContentConvNull<unsigned int> >::~OD_Utl_XML_RegisteredElement<unsigned int,class OD_Utl_XML_ContentConvNull<unsigned int> >(void)" (__imp_??1?$OD_Utl_XML_RegisteredElement@IV?$OD_Utl_XML_ContentConvNull@I@@@@UAE@XZ),該符號在函數 __catch$?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z$0 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: virtual __thiscall OD_Utl_XML_RegisteredElement<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class OD_Utl_XML_ContentConvString>::~OD_Utl_XML_RegisteredElement<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class OD_Utl_XML_ContentConvString>(void)" (__imp_??1?$OD_Utl_XML_RegisteredElement@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@VOD_Utl_XML_ContentConvString@@@@UAE@XZ),該符號在函數 __catch$?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z$0 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class OD_Utl_XML_ContentConvNull<unsigned int> >::OD_Utl_XML_RegisteredElement<unsigned int,class OD_Utl_XML_ContentConvNull<unsigned int> >(unsigned int &,char *,class OD_Utl_XML_SaxParser &)" (__imp_??0?$OD_Utl_XML_RegisteredElement@IV?$OD_Utl_XML_ContentConvNull@I@@@@QAE@AAIPADAAVOD_Utl_XML_SaxParser@@@Z),該符號在函數 "public: virtual void __thiscall DiameterXMLConfigParser::Load(class AAA_Task &,char *)" (?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z) 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlSessionTimeoutConv>::OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlSessionTimeoutConv>(unsigned int &,char *,class OD_Utl_XML_SaxParser &)" (__imp_??0?$OD_Utl_XML_RegisteredElement@IVDiameterXmlSessionTimeoutConv@@@@QAE@AAIPADAAVOD_Utl_XML_SaxParser@@@Z),該符號在函數 "public: virtual void __thiscall DiameterXMLConfigParser::Load(class AAA_Task &,char *)" (?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z) 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlRteServerMetricConv>::OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlRteServerMetricConv>(unsigned int &,char *,class OD_Utl_XML_SaxParser &)" (__imp_??0?$OD_Utl_XML_RegisteredElement@IVDiameterXmlRteServerMetricConv@@@@QAE@AAIPADAAVOD_Utl_XML_SaxParser@@@Z),該符號在函數 "public: virtual void __thiscall DiameterXMLConfigParser::Load(class AAA_Task &,char *)" (?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z) 中被引用
1>aaa_xml_data.obj : error LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlRteServerConv>::OD_Utl_XML_RegisteredElement<unsigned int,class DiameterXmlRteServerConv>(unsigned int &,char *,class OD_Utl_XML_SaxParser &)" (__imp_??0?$OD_Utl_XML_RegisteredElement@IVDiameterXmlRteServerConv@@@@QAE@AAIPADAAVOD_Utl_XML_SaxParser@@@Z),該符號在函數 "public: virtual void __thiscall DiameterXMLConfigParser::Load(class AAA_Task &,char *)" (?Load@DiameterXMLConfigParser@@UAEXAAVAAA_Task@@PAD@Z) 中被引用

18 个解决方案

#1


OD_Utl_XML_RegisteredElement需要某靜態庫lib……
請添加依賴項

#2


實現它不就行了。
是你自己寫的,還是現成的?
注意相關cpp文件是否加入工程了。

#3


貌似屬性配置不正確

#4


dllimport……
還是需要lib啊……

#5


引用 1 樓 mstlq 的回復:
OD_Utl_XML_RegisteredElement需要某靜態庫lib……
請添加依賴項


我已經把OD_Utl_XML_RegisteredElement所在工程編譯生成的.lib加到編譯參數里了;

#6


引用 2 樓 loaden 的回復:
實現它不就行了。
是你自己寫的,還是現成的?
注意相關cpp文件是否加入工程了。


上面列出的代碼似乎都已實現,請問具體怎么改?

#7


引用 5 樓 ishow99 的回復:
引用 1 樓 mstlq 的回復:
 OD_Utl_XML_RegisteredElement需要某靜態庫lib……
 請添加依賴項


 我已經把OD_Utl_XML_RegisteredElement所在工程編譯生成的.lib加到編譯參數里了;


應該是加入鏈接參數里哦……

請貼出您的鏈接器命令行信息好嗎^_^

#8


引用 7 樓 mstlq 的回復:
引用 5 樓 ishow99 的回復:
引用 1 樓 mstlq 的回復:
OD_Utl_XML_RegisteredElement需要某靜態庫lib……
請添加依賴項


我已經把OD_Utl_XML_RegisteredElement所在工程編譯生成的.lib加到編譯參數里了;


應該是加入鏈接參數里哦……

請貼出您的鏈接器命令行信息好嗎^_^


我用的是VC2008,在鏈接器-輸入-附加依賴項 里添加了所需的.lib庫:

ACEd.lib
ACEXMLd.lib
ACEXML_Parserd.lib
libdiamparser.lib
libodutl.lib

libodutl.lib就是OD_Utl_XML_RegisteredElement所在的.lib

#9


還沒有解決,高手們關注下

#10


未解決,自頂

#11


是否沒有配置正確lib文件的路徑

#12


呃,很多時候被這種error搞得火大

#13


一般出現無法解析的外部符號這種問題,是因為某個依賴庫沒有添加到工程

#14


我也遇到這種問題,解決方法是 在 定義庫文件所包含函數的源文件 里加入 .lib 庫文件。看是不是忘加了。 

#15


引用 14 樓  的回復:
我也遇到這種問題,解決方法是 在定義庫文件所包含函數的源文件 里加入 .lib 庫文件。看是不是忘加了。

能否說的詳細些?

#16


1.沒有找到某個.cpp文件;2.是沒有設置好lib

#17


#pragma comment( lib,"your.lib")加上這一句

#18


引用 7 樓  的回復:
引用 5 樓 ishow99 的回復:
引用 1 樓 mstlq 的回復:
OD_Utl_XML_RegisteredElement需要某靜態庫lib……
請添加依賴項


我已經把OD_Utl_XML_RegisteredElement所在工程編譯生成的.lib加到編譯參數里了;


應該是加入鏈接參數里哦……

請貼出您的鏈接器命令行信息好嗎^_^

這位仁兄很不錯啊

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com