我正在尝试使用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.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.cpp
#include "../app/Collider.h"
void myFunction();
void myFunction(){
Rect rect(4);
}
此外,每个项目都有一个带有空main()函数的main.cpp文件,以避免编译器对入口点的抱怨。
答案 0 :(得分:2)
这两个项目都有主要功能吗?
这意味着您正在构建两个可执行文件。可执行文件通常不会导出函数。
您需要一个可执行文件和一个类库(dll)。
BTW:如果你有一个空主函数,你怎么知道你的程序是否运行?