包含来自单独目录的文件时的未定义引用

时间:2011-09-10 20:59:59

标签: qt include compiler-errors

我有非常基本的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

谢谢!

1 个答案:

答案 0 :(得分:2)

对于最简单的更改,我认为您需要将.pro文件更改为:

Test.pro

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

如果您还有其他代码也将在common.cpp中进行链接,那么更好的方法是在f1中生成一个生成库的.pro文件,并将其链接到其他应用程序。

但是只需手动将common.cpp添加到您的源列表中即可。