2011-09-10 62 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

相關問題