2011-09-10 10 views
0

私は非常に基本的なQTアプリケーションを持っています。 私はここに行く:)私は2つのフォルダ、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)を構築しようとすると、私は次のエラーを取得する:/ main.cppに F2:7: `CalculateMD5(QStringの)への未定義参照」

私は何をやっています違う ?別のプロジェクトのコードをどのように含めるべきですか? CalculateMD5関数をグローバルにする必要があります。ここで

あなたは全体の一例(1キロバイト)ダウンロードすることができます。 http://www.xx77abs.com/test.rar

感謝を!最も簡単な変更のために、私はあなたがこれまであなたの.PROファイルを変更する必要があると思う

答えて

2

Test.pro

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

あなたもcommon.cppにリンクされる他のコードをお持ちの場合より良い変更は、他のアプリケーションにリンクされるライブラリを生成する.proファイルをf1に作成することです。

しかし、あなたのソースのリストにcommon.cppを手作業で追加するだけで、そのトリックを行うべきです。

+0

私はあなたの 'INCLUDEPATH'に二重スラッシュがあるのもよく分かりません - ' '../f1 ''もうまくいくと思います –

+0

ありがとう!私はそれが問題かどうかを見るための道を試していただけです( "\\ f1"でも動作します))しかし、私は "../f1"を使用しています。再度、感謝します !! – xx77aBs

+0

私はこの回答を受け入れて申し訳ありませんが、別の問題があり、新しい質問を作成したくありません(これはこの問題に関連しています)。私は自分の質問を編集しました。あなたはそれを見てみることができますか? – xx77aBs