これが繰り返しの質問である場合は申し訳ありませんが、私は数時間検索しており、矛盾する回答が得られています...さらに悪いことに、どれも機能していません.
それは簡単なことです。多くのソース ファイルがあり、"Parameters.h" など、1 つのファイルにまとめたい共通のパラメーターがいくつかあります。これらのパラメーターを引数としてプログラムに渡すことにより、実行時にこれらのパラメーターを (1 回) 設定したいと考えています。
PS: すべてを引数として関数に渡すのがより良い方法であることはわかっていますが、それは分厚いコードであり、多くの変更を加えずにすぐに結果を取得する必要があります。
最小限の作業例を次に示します。
パラメータ.h
#ifndef PARAMETERS_H_
#define PARAMETERS_H_
extern int Alpha;
#endif
main.cpp
#include <iostream>
#include "Parameters.h"
int main(int argc, char * argv[])
{
const int Alpha = 12.0;
}
関数.cpp
#include "Parameters.h"
double Foo(const double& x)
{
return Alpha*x;
}
でコンパイルすると
gcc main.cpp Functions.cpp
「Functions.cpp:(.text+0xa): undefined reference to `Alpha'」というエラーが表示されます。