コードをコンパイルしようとしていますが、複数の定義でリンク エラーが発生します。残念ながら、私はそれを修正することができません。助けていただければ幸いです。
次のファイルがあります。ヘッダー ファイル: CEST.h; CEST_UI.h; GlobalVariable.h;
ソース ファイル: CEST.cpp; CEST_UI.cpp; グローバル変数.cpp
複数の定義があると主張されているすべてのパラメーターは、「GlobalVariable.h」で定義され、「GlobalVariable.cpp」で初期化されます。
「GlobalVariable.h」を 2 回含めています。1 回目は CEST.cpp に、2 回目は CEST_UI.cpp に含めています。
「GlobalVariable.h」の次のガードは、複数の定義のリンクエラーから私を保護するだろうと考えていました:
# ifndef GLOBALVARIABLE_H
#define GLOBALVARIABLE_H
………….
………….
#endif
「GlobalVariable.h」と「GlobalVariable.cpp」も添付しますので、ご覧ください。
「GlobalVariable.h」内</p>
# ifndef GLOBALVARIABLE_H
#define GLOBALVARIABLE_H
#include <vector>
////////////////////////////////////////
extern long lFA_MTPulse;
extern long lNoOfMTPulses;
extern long ltDK_MTPulse_Duration_us;
//extern long ltDK_MTPulse_Delay_us;
extern long ltDK_Wait_After_MT_us;
extern long ltDK_Wait_After_MTSpoil_us;
extern long lNoOfMTPulses_PerRTEB;
extern long ltDK_PreAcqCESTPulseTime_ms;
extern long ltDK_PreAcqCESTPulseTime_us;
extern long lTest_XgradStrength;
//double TR_MTPulse_Remain = 0.0; // CEST This will be calculated later
long ltDK_TR_MTPulse_us;
long ltDK_TimeNeeded_for_sMTCSpoilerOnly;
long ltDK_MTBlockTime_DK;
////////////////////////////////////////
extern double dBWTimeProd;
extern double dSpoilerCTRL;
extern double dOffResonance_Rel;
////////////////////////////////////////
long No_of_Samples = (long)512; // CEST
long lNo_of_MTPulses_PreAcq;
//static sRF_PULSE sRfMSat1("sRfMSat"); // CEST("sRfMSat")
extern long lNoOfKSpaceAcq_PerCEST_ArrayValues[];
#endif
GlobalVariable.cpp 内
// NOTE: usually name of any parameters is prefixed by type e.g.
// I am introducing another parameter with prefix "ltDK_" for "long-time" parameter
//
long lFA_MTPulse = 100;
long lNoOfMTPulses = 1;
long ltDK_MTPulse_Duration_us = 10000;
//long ltDK_MTPulse_Delay_us = 10000;
long ltDK_Wait_After_MT_us = 0;
long ltDK_Wait_After_MTSpoil_us = 0;
long ltDK_PreAcqCESTPulseTime_ms = 3500; // in micro sec
long ltDK_PreAcqCESTPulseTime_us = (long)((double)ltDK_PreAcqCESTPulseTime_ms*1000); // in milli sec
long lTest_XgradStrength = 0;
long lNoOfMTPulses_PerRTEB = 30;
double dBWTimeProd = 1.79;
double dSpoilerCTRL = 1.0;
double dOffResonance_Rel = 0.0;
long lNoOfKSpaceAcq_PerCEST_ArrayValues[5] = {1, 3, 5, 7, 9};