VC ++ Express 2008中的LNK2019和LNK2028错误

时间:2012-01-12 21:46:20

标签: c++ visual-c++ lnk2019

我正在尝试使用2个项目构建解决方案并获取这些错误消息:

ColliderTest.obj:错误LNK2028:未定义的标记(0A000080)“public __tc中的函数”__tdecall Rect :: Rect(int)“(?? 0Rect @@ $$ FQAE @ XZ)函数”void __cdecl myFunction(void)“ (?myFunction的@@ $$ FYAXXZ)

ColliderTest.obj:错误LNK2019:未解析的外部符号“public:__thiscall Rect :: Rect(int)”(?? 0Rect @@ $$ FQAE @ XZ)在函数“void __cdecl myFunction(void)”中引用(? myFunction的@@ $$ FYAXXZ)

代码:

  • 在“Collider”项目中,我有以下文件:

Collider.h

#pragma once

class Rect{

    int x;
    int y;
    unsigned int w;
    unsigned int h;

public:
    Rect(int x);
};

Collider.cpp

#include "Collider.h"

Rect::Rect(int x){
    this->x = x;
}
  • 项目“ColliderTest”引用项目Collider和此文件:

ColliderTest.cpp

#include "../app/Collider.h"

void myFunction();

void myFunction(){

    Rect rect(4);
}

此外,每个项目都有一个带有空main()函数的main.cpp文件,以避免编译器对入口点的抱怨。

1 个答案:

答案 0 :(得分:2)

这两个项目都有主要功能吗?

这意味着您正在构建两个可执行文件。可执行文件通常不会导出函数。

您需要一个可执行文件和一个类库(dll)。

BTW:如果你有一个空主函数,你怎么知道你的程序是否运行?