我有一個問題,我似乎無法解決。 我有一個文件JobDispatcher.cpp,其中包含文件#include "CalculateNormalsJob.h"
包含具有相同名稱的類的聲明。錯誤LNK2001:無法解析的外部符號,儘管包含頭文件
class CalculateNormalsJob : public Job
{
public:
CalculateNormalsJob(some params);
...
};
文件CalculateNormalsJob.cpp包含以下定義
CalculateNormalsJob::CalculateNormalsJob(some params)
: Job(params)
{
}
兩個CalculateNormalsJob.h和CalculateNormalsJob.cpp是在同一個項目和文件夾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)" ([email protected]@[email protected]@@[email protected]@[email protected]@[email protected]) 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));
你實際上是否與CaclulateNormalJobs.cpp連接? –
您確定您已經將屬於CalculateNormalsJob.h'的CalculateNormalsJob.cpp文件添加到項目中,以便它實際得到編譯嗎? – sth
「CalculateNormalsJob.cpp」文件包含在項目中,應該編譯 –