我有以下文件
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项目A中的一个项目: file1_moduleA.hpp、file1_moduleA.cpp和sharedFile.hpp
在另一个VS项目B中,项目B: file1_moduleB.cpp,file1_moduleB.hpp
项目A编译和链接完美,而项目B为CustomClass *doSomething(CustomClass *var1,const char *var2)提供了一个未解决的符号,即在file1_moduleB.cpp中的someFunction
我尝试过定义带有和不带extern的函数的;尝试在file1_moduleA.hpp中为模板使用一个单独的文件;在VS中尝试诱导ProjectB和ProjectA之间的依赖,但似乎没有什么效果。我不知道为什么在链接过程中找不到定义。然而,ProjectA.lib正在创建中。
如能在这方面提供任何帮助,将不胜感激。
发布于 2013-01-09 03:40:46
如果您使用的是visual studio,并且这些是不同的项目,那么就让项目B依赖于项目A。
右击解决方案。转到项目依赖项。
选择B项目。
单击项目A(使项目B依赖于项目A)
重建。
发布于 2013-01-09 12:21:42
你在项目B中包括共享文件吗?
https://stackoverflow.com/questions/14227863
复制相似问题