0

project_1.vcprojには次のものが含まれます。header_1.hには「externintフラグ」があります。宣言されています。source_1.cでは「intflag=0」が初期化されています

project_2.vcprojには次のものが含まれます。source_2.cには、フラグの値を変更する関数があります。

#include "header_1.h"
 void setFlag() {
    flag = 1;
}

これをコンパイルしようとすると、リンクエラーが発生します:エラーLNK2001:未解決の外部シンボル"intフラグ"

私が達成しようとしているのは、フラグの値をグローバルに表示したいということです。フラグが1に設定された後、source_1.cはこの情報を使用して他のことを行うためです。

私を達成する方法を教えてください。ありがとう。

4

3 に答える 3

1

#include "header_1.h"の上部にある必要がありsource_2.cます。

またsource_1.c、project_2 に含まれていることを確認してください。

于 2012-08-02T19:50:22.940 に答える
0

Project_2にはheader_1.hを含めるか、Project_2で宣言する必要がありextern int flagます。いずれの場合も、Project_2をの実際の保存場所にリンクする必要がありますint flag。それ以外の場合、project_2はint flagProject_1にあるinの値を操作しません。

于 2012-08-02T19:53:34.297 に答える
0

別の .c ファイルに抽出int flag = 0し、そのソース ファイルを両方のプロジェクトに追加します。

于 2012-08-02T20:17:20.140 に答える