我目前正在尝试将新的头文件和.cpp文件添加到Visual Studio 2012中的大型现有C ++解决方案中,但遇到了一些错误。这是我的步骤:
Project =>添加新项=>头文件(temp.h)
temp.h内容:
#ifndef TEMP_H
#define TEMP_H
class tempclass
{
public:
tempclass();
~tempclass();
};
#endif
Project =>添加新项=> .cpp文件(temp.cpp)
temp.cpp内容:
#include "..\include\temp.h"
tempclass::tempclass()
{}
tempclass::~tempclass()
{}
但是,当我添加tempclass p;
到项目中的另一个文件(下面#include "../include/temp.h"
)时,我收到以下链接器错误:
5>xxxx.obj : error LNK2001: unresolved external symbol "public: __cdecl tempclass::tempclass(void)" (??0tempclass@@QEAA@XZ)
5>xxxx.obj : error LNK2001: unresolved external symbol "public: __cdecl tempclass::~tempclass(void)" (??1tempclass@@QEAA@XZ)
我无法追踪到底发生了什么。out put报告temp.cpp构建成功,并且它与所有其他项目cpp文件位于同一位置。 谁对可能造成这种情况的原因有所了解吗?
发布于 2018-12-13 13:58:38
在您的temp.cpp
文件中,编译器正在转义该'\'
字符并且无法找到temp.h
。
更改'\'
为'/'
或'\\'
。
从:
#include "..\include\temp.h""
改成:
#include "../include/temp.h"
// or
#include "..\\include\\temp.h
发布于 2018-12-13 14:43:42
问题已经解决。事实证明这是一个特定于解决方案的问题,而不是一般的链接器问题。感谢所有提供一些见解的人。
https://stackoverflow.com/questions/-100006281
复制相似问题