解決できないように見える問題があります。#include "CalculateNormalsJob.h"
同じ名前のクラスの宣言を含むファイルを含むファイル JobDispatcher.cpp があります。
class CalculateNormalsJob : public Job
{
public:
CalculateNormalsJob(some params);
...
};
ファイル CalculateNormalsJob.cpp には、次の定義が含まれています。
CalculateNormalsJob::CalculateNormalsJob(some params)
: Job(params)
{
}
CalculateNormalsJob.h と CalculateNormalsJob.cpp はどちらも、Job オブジェクトを次のように作成する JobDispatcher.cpp と同じプロジェクトおよびフォルダーにあります。
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 と付属の v110 コンパイラで Visual Studio 2012 を使用しています。
どんな助けでも大歓迎です!
編集:
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));