0

我有以下文件

file1_moduleA.hpp

file1_moduleA.cpp

共享文件.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)提供未解析的符号

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

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

4

2 回答 2

0

如果您使用的是 Visual Studio,并且这些是不同的项目,则使项目 B 依赖于项目 A。

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

选择项目 B。

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

重建。

于 2013-01-09T03:40:46.897 回答
0

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

于 2013-01-09T12:21:42.217 回答