Thursday, 19 October 2017

c++ - Unresolved external symbol in object files

itemprop="text">

During coding in Visual Studio I got
an unresolved external symbol error
and I've got no idea what to do. I don't
know what's wrong.
Could you please decipher me? Where should I be looking for
what kind of
errors?




1>Form.obj :
error LNK2019: unresolved external symbol "public: class Field * __thiscall
Field::addField(class Field *)" (?addField@Field@@QAEPAV1@PAV1@@Z) referenced in
function "public: void __thiscall Form::parse(class
std::basic_stringstream,class
std::allocator > &)"
(?parse@Form@@QAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj
: error LNK2019: unresolved external symbol "public: virtual void __thiscall
Field::parse(class std::basic_stringstream std::char_traits,class std::allocator > &)"
(?parse@Field@@UAEXAAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
referenced in function "public: __thiscall InputField::InputField(class
std::basic_stringstream,class
std::allocator > &)"
(??0InputField@@QAE@AAV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>Form.obj
: error LNK2001: unresolved external symbol "public: virtual void __thiscall
Field::prompt(void)" (?prompt@Field@@UAEXXZ)
1>Form.obj : error LNK2001:
unresolved external symbol "public: virtual class std::basic_string std::char_traits,class std::allocator > __thiscall
Field::getName(void)"
(?getName@Field@@UAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>Form.obj
: error LNK2001: unresolved external symbol "public: virtual class
std::basic_string,class
std::allocator > __thiscall Field::getType(void)"
(?getType@Field@@UAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>Form.obj
: error LNK2001: unresolved external symbol "public: virtual void __thiscall
Field::describe(void)"
(?describe@Field@@UAEXXZ)
1>C:\Users\tomy\Documents\Visual Studio
2010\Projects\zapoctovkac++\Debug\zapoctovkac++.exe : fatal error LNK1120: 6 unresolved
externals

class="post-text" itemprop="text">
class="normal">Answer





This error often means that some
function has a declaration, but not a
definition.



Example:



//
A.hpp
class A
{
public:
void myFunc(); //
Function declaration
};


//
A.cpp

// Function definition
void
A::myFunc()
{
// do
stuff
}



In
your case, the definition cannot be found.
The issue could be that you
are including a header file, which brings in some function declarations, but you
either:




  1. do not define the
    functions in your cpp file (if you wrote this code
    yourself)

  2. do not include the lib/dll file that contains
    the definitions



A common
mistake is that you define a function as a standalone and forget the class selector,
e.g. A::, in your .cpp
file:



Wrong:
void myFunc() { /* do stuff */ }

/>Right: void A::myFunc() { /* do stuff */
}


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...