1

我正在尝试使用 2 个项目构建解决方案并收到以下错误消息:

ColliderTest.obj : 错误 LNK2028: 未定义令牌 (0A000080) "public: __thiscall Rect::Rect(int)" (??0Rect@@$$FQAE@XZ) 在函数 "void __cdecl myFunction(void)" (?myFunction @@$$FYAXXZ)

ColliderTest.obj:错误 LNK2019:函数“void __cdecl myFunction(void)”(?myFunction@@ $$FYAXXZ)

编码:

  • 在项目“对撞机”中,我有这些文件:

对撞机.h

#pragma once

class Rect{

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

public:
    Rect(int x);
};

对撞机.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 文件,以避免编译器对入口点的抱怨。

4

1 回答 1

2

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

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

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

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

于 2012-01-12T22:11:32.267 回答