错误LNK2019:无法解析的外部符号 - 未见问题的实例
Im有错误LNK2019:无法解析的外部符号问题。错误LNK2019:无法解析的外部符号 - 未见问题的实例
我有2个文件,并将它们移动到共享位置,因此2个不同的项目可以使用类。 这里还有其他类。
的问题是,当我从项目之一的主调用类的即时得到
error LNK2019: unresolved external symbol "public: __thiscall CProcessCommandLine::~CProcessCommandLine(void)" ([email protected]@[email protected]) referenced in function _main
error LNK2019: unresolved external symbol "public: bool __thiscall CProcessCommandLine::Wait(void)const " ([email protected]@@QBE_NXZ) referenced in function _main
error LNK2019: unresolved external symbol "public: class std::vector<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > > const & __thiscall CProcessCommandLine::getTargetNamesVect(void)" ([email protected]@@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected][email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@@[email protected]@[email protected]@XZ) referenced in function _main
error LNK2019: unresolved external symbol "public: __thiscall CProcessCommandLine::CProcessCommandLine(void)" ([email protected]@[email protected]) referenced in function _main
当我打开的功能之一的头文件,右键点击并进入去定义它不会转到.cpp中的定义。当我右键点击.cpp中的一个函数,并说定义它说“符号没有定义”。
任何人都知道为什么会发生这种情况?无论是.H和.cpp是在相同的位置和该位置是在附加包含该项目的目录
编辑:
在其他文件中存在此文件夹中的以下代码:
#ifdef PROJ1
#include "class1.h"
#elif PROJ2
#include "class2.h"
#endif
我以前从未见过这些东西。它们用于代码中,但仅用于包含正确的头文件,具体取决于使用哪个项目。以上内容位于此文件夹中其他类的.cpp文件中。所以我把它放在这里。但是在其他类中,它不属于的项目是灰色的。当我将它放入.h时,它将正确的标题灰色化。但由于某些原因,这个.cpp并未被视为该项目的一部分。
如果你的函数属于不同的模块比你正在构建的一个,你必须导出类:
#ifdef THIRD_MODULE
#define DLLIMPEXP _declspec(dllexport)
#else
#define DLLIMPEXP _declspec(dllimport)
#endif
class DLLIMPEXP CProcessCommandLine
{
//...
};
您构建定义与界定THIRD_MODULE
此类项目。
该项目将生成.lib
文件,您必须将其添加到主项目的链接器设置中的其他依赖项。
我编辑了原帖。 – discodowney 2012-04-17 12:51:06
@discodowney你的编辑不会影响我的答案。 'cpp'文件只是一个项目的一部分(或者至少应该是)。 – 2012-04-17 12:55:27
我在这里很可怕。为什么头文件好吗? – discodowney 2012-04-17 13:11:01
我不认为你是链接对象/库是你吗? – trojanfoe 2012-04-17 12:29:50
也许不是。在编译/链接过程中一起完成了所有其他任务,但显然不是。对象/库在哪里? – discodowney 2012-04-17 12:56:13