链接器错误LNK2019?

时间:2013-01-09 03:31:00

标签: c++ visual-studio-2010 visual-c++

我有以下文件

file1_moduleA.hpp

file1_moduleA.cpp

sharedFile.hpp

file1_moduleB.cpp

//sharedFile.hpp
extern CustomClass *doSomething(CustomClass *var1, const char *var2);
extern CustomClass *doSomethingElse(const char *var1);

template <class MYCLASS_A>
void myFunction(CustomClass *var1, const char* var2){
assert(somthing);
if (condition){
    new (MYCLASS_A);
}
}



//file1_moduleA.cpp
#include "sharedFile.hpp"
// Contains the definitions of doSomething and doSomethingElse among others


//file1_moduleA.hpp
// Other declarations


//file1_moduleB.cpp
#include"sharedFile.hpp"

//...SNIPPETS OF CODE
void someFunction(CustomClass* var1){
doSomething(var1, "FOO");
}
//...

以下是一个Visual Studio项目,项目A: file1_moduleA.hpp,file1_moduleA.cpp和sharedFile.hpp

以下是另一个VS项目,项目B: file1_moduleB.cpp,file1_moduleB.hpp

项目A完美地编译和链接,而项目B编译但是在 file1_moduleB.cpp中的someFunction处为 CustomClass * doSomething(CustomClass * var1,const char * var2)提供了一个未解析的符号/强>

我尝试使用和不使用extern 定义函数;尝试在file1_moduleA.hpp中为模板使用单独的文件;尝试在VS中引发ProjectB和ProjectA之间的依赖关系,但似乎没有任何效果。我不确定为什么在链接期间找不到定义。但是,正在创建ProjectA.lib。

在这方面的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您使用的是visual studio,并且这些是不同的项目,那么使项目B依赖于项目A.

右键单击解决方案。 转到项目依赖项。

选择项目B.

单击项目A(使项目B依赖于项目A)

重建。

答案 1 :(得分:0)

您是否在项目B中包含共享文件?