C++ inheritence and LNK2019
C++ inheritence and LNK2019
我遇到了这个问题,不知道如何解决。
我有两节课。一个是基础CCD_ 1,一个是派生CCD_。基类位于构建为静态库的不同项目中。我在具有派生类的项目的属性中设置了附加的include和库目录。我正在使用VS2012。
// ProgramVariableBase.h
#include <string>
class ProgramVariableBase
{
protected:
std::string m_name;
bool m_initialized;
public:
ProgramVariableBase(const char* name);
virtual ~ProgramVariableBase();
virtual const std::string & Name();
virtual void MakeInitialized();
};
// ProgramVariableBase.cpp
#include "ProgramVariableBase.h"
ProgramVariableBase::ProgramVariableBase(const char* name)
{
m_name = name;
m_initialized = false;
}
ProgramVariableBase::~ProgramVariableBase()
{
}
const std::string & ProgramVariableBase::Name()
{
return m_name;
}
void ProgramVariableBase::MakeInitialized()
{
m_initialized = true;
}
// ProgramVariable.h
#include "ProgramComponentsProgramVariableBase.h"
class ProgramVariable : public ProgramVariableBase
{
public:
ProgramVariable(const char* name);
~ProgramVariable();
void MakeInitialized() override;
};
// ProgramVariable.cpp
#include "ProgramVariable.h"
ProgramVariable::ProgramVariable(const char* name) : ProgramVariableBase(name)
{
}
ProgramVariable::~ProgramVariable()
{
}
void ProgramVariable::MakeInitialized()
{
m_initialized = true;
}
我可以用基类构建项目,但当我尝试用派生类构建项目时,会出现错误。每个错误看起来都很相似,并且涉及基类、其构造函数和析构函数中的方法。我在这里寻找类似的答案,但没有人帮忙。我是做错了什么,还是我的项目属性不正确?
unresolved external symbol "public: __thiscall ProgramVariableBase::ProgramVariableBase(char const *)" (??0ProgramVariableBase@@QAE@PBD@Z) referenced in function "public: __thiscall ProgramVariable::ProgramVariable(char const *)"
unresolved external symbol "public: virtual __thiscall ProgramVariableBase::~ProgramVariableBase(void)" (??1ProgramVariableBase@@UAE@XZ) referenced in function "public: virtual __thiscall ProgramVariable::~ProgramVariable(void)"
您需要将库添加到链接器设置中。仅将包含库的文件夹放入其他库设置是不够的。
您可以通过linker->Input->Additional Dependencies或在c++代码中使用pragma将库添加到链接器设置中。
#pragma comment(lib, "mylib.lib")
也许您没有将库添加到其他依赖项列表(实际链接的库列表)中。
转到Project Properties
->Linker
->Input
->Additional Dependencies
并在那里添加库的名称。
相关文章:
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 为什么 Clang 不允许"and"作为函数名称?
- 类C++中的函数问题(LNK2019和LNK1120错误)
- 位阵列上的快速AND运算
- 是否可以在 C++03 中定义'move-and-swap idiom'等效项
- CppSQLite 抛出"LNK2019: unresolved external symbol"错误
- BoostPython and CMake
- OpenSSL BIO and SSL_read
- Gurobi GRBModel and GRBmodel in C++
- std::visit and std::variant usage
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- LNK2019 With Qt and Gmock
- ERROR LNK2001 AND LNK2019
- error LNK2019 ARuco and OpenCV VS2010 c++
- C++ inheritence and LNK2019
- LNK2028 and LNK2019 errors
- visual studio lnk2019 and 1120 error
- Visual C++ Error: LNK2019, LNK2028 and LNK1120