链接器找不到函数定义,LNK2001未解析的外部符号

Linker can't find function definitions, LNK2001 unresolved external symbol

提问人:xcdemon05 提问时间:3/13/2013 最后编辑:xcdemon05 更新时间:3/13/2013 访问量:301

问:

这是我的简单设置:(我隐藏了很多不需要的信息)

//AutoFocusTest.h
#include "camAVTEx.h"

class CAutoFocusTestApp : public CWinApp
{
protected:
    camera_t* mCamera;

public:
    virtual BOOL InitInstance();
};

//camAVTEx.h
class camera_avtcam_ex_t : public camera_t
{
public:
    camera_avtcam_ex_t();
    virtual ~camera_avtcam_ex_t();

    //member variables

    //member function declarations
}

//camAVTEx.cpp
#include "camAVTEx.h"

camera_avtcam_ex_t::camera_avtcam_ex_t()
{
    //stuff
}

camera_avtcam_ex_t::~camera_avtcam_ex_t()
{
    //stuff
}

//the rest are defined here in my program

//AutoFocusTest.cpp
#include AutoFocusTest.h

BOOL CAutoFocusTestApp::InitInstance()
{
    mCamera = new camera_avtcam_ex_t();
}

此设置会产生错误:

3>AutoFocusTest.obj:错误LNK2001:未解析的外部符号 “公共:__cdecl camera_avtcam_ex_t::camera_avtcam_ex_t(无效)” (??0camera_avtcam_ex_t@@QEAA@XZ)

从我读到的关于这个相对常见的问题的所有内容来看,我没有链接导致找不到我的camera_avtcam_ex_t函数定义的内容。但是,我无法弄清楚我可能错过了什么。我已经添加了所有包含目录和库目录,并将库文件添加到其他依赖项部分。

谁能发现我可能遗漏的任何东西?

C++ visual-studio 链接器 未解析外部

评论

1赞 Leo Chapiro 3/13/2013
你的意思肯定是 mCamera = new camera_avtcam_ex_t();或不?
0赞 Luchian Grigore 3/13/2013
////class function definitions实际上并没有定义函数,你知道的,对吧?
0赞 jrok 3/13/2013
默认构造函数和析构函数的定义。具体来说,您发布的错误提到了 的默认构造函数。camera_avtcam_ex_t
1赞 Luchian Grigore 3/13/2013
@duDE为什么这很重要呢?
0赞 xcdemon05 3/13/2013
@duDE是的,对不起,我只是在这里打错了

答:

1赞 SomeWittyUsername 3/13/2013 #1

假设你已经 定义了构造函数,它被声明为 ,你不能实例化它。camera_avtcam_ex_tprivate

评论

0赞 xcdemon05 3/13/2013
不,它是公开的,我只是在输入问题时忘记指定。