2011-09-10 32 views
0

我有非常基本的QT应用程序(只是创建来解释我的问题)。 所以在这里我去:)我有两个文件夹,f1和f2,他们在同一级别(父母有相同的文件夹)。在f1中,我有来自我的项目的源代码,在f2中有另一个项目。 对于这个例子的目的,让我们说,在F1中,我只有COMMON.H和common.cpp,并在F2我:当从单独的目录中包含文件时未定义的引用

Test.pro

SOURCES = main.cpp 
INCLUDEPATH += "..//f1//" 

的main.cpp

#include <common.h> 
#include <QDebug> 

int main(int argc, char *argv[]) 
{ 

    qDebug()<<CalculateMD5("test"); 
} 

当我尝试建立这个项目(Test.pro)我得到以下错误: F2/main.cpp中:7:未定义的引用`CalculateMD5(QString的)”

我在做什么错了?我应该如何包含来自另一个项目的代码? 我需要CalculateMD5函数是全局的。

在这里,你可以下载整个例子(1KB): http://www.xx77abs.com/test.rar

谢谢!

回答

2

对于最简单的变化,我认为你需要改变你的.pro文件到这一点:

Test.pro

SOURCES = main.cpp ../f1/common.cpp 
INCLUDEPATH += "..//f1//" 

如果有也将在common.cpp链接其他代码,那么更好的变化是在f1中生成一个生成库的.pro文件,以链接到其他应用程序。

但是,只是手动添加common.cpp到你的源代码清单应该做的伎俩。

+0

我也不确定你为什么在你的'INCLUDEPATH'中有双斜杠 - 我希望''../ f1“'也可以工作 –

+0

谢谢!我只是试验路径,看看它是否是问题(“\\ f1”也适用);)但我使用“../f1”。再次感谢 !! – xx77aBs

+0

对不起,我接受这个答案,但我有另一个问题,不想为它创建新的问题(它与这一问题有关)。我编辑了我的问题,你可以看一下吗? – xx77aBs

相关问题