我有一个似乎无法解决的问题。我有一个文件 JobDispatcher.cpp,其中包含一个#include "CalculateNormalsJob.h"
包含同名类声明的文件。
class CalculateNormalsJob : public Job
{
public:
CalculateNormalsJob(some params);
...
};
文件 CalculateNormalsJob.cpp 包含以下定义
CalculateNormalsJob::CalculateNormalsJob(some params)
: Job(params)
{
}
CalculateNormalsJob.h 和 CalculateNormalsJob.cpp 与 JobDispatcher.cpp 在同一个项目和文件夹中,它创建一个 Job 对象为
add(new CalculateNormalsJob(some params));
在链接期间,我收到以下错误
Error 9 error LNK2001: unresolved external symbol "public: __thiscall CalculateNormalsJob::CalculateNormalsJob(class ResourceMap *,class JobScheduler *,class Job *,int)" (??0CalculateNormalsJob@@QAE@PAVResourceMap@@PAVJobScheduler@@PAVJob@@H@Z) C:\Fredrik\vs12\proflexa\scanner\JobDispatcherJob.obj
我对自己忘记了什么一无所知。我在 Win7 下使用 Visual Studio 2012 和包含的 v110 编译器。
任何帮助表示赞赏!
编辑:
由于某种原因,它似乎CalculateNormalsJob.cpp
没有被编译。然而,我不知道为什么。它包含在项目中,Visual Studio 的 IntelliSense 了解该类及其功能。
编辑2:
CalculateNormalsJob.h
CalculateNormalsJob(ResourceMap *state, JobScheduler *scheduler, Job* listener, int scanNumber);
CalculateNormalsJob.cpp
CalculateNormalsJob::CalculateNormalsJob(ResourceMap *state, JobScheduler *scheduler, Job* listener, int scanNumber)
: Job(state, scheduler, listener), scanNumber(scanNumber)
{
}
Call:
add(new CalculateNormalsJob(state,scheduler,this,scanNbr));