这是一件简单的事情。我有很多源文件,我有一些常见的参数,我想在一个文件中,比如“Parameters.h”。我想在运行时设置这些参数(一次),方法是将它们作为参数传递给程序。
PS:我知道更好的方法是将所有内容作为参数传递给函数,但这是一段很大的代码,我需要尽快得到结果,而不需要做太多更改。这是一个最小的工作示例:
Parameters.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;
}
Functions.cpp
#include "Parameters.h"
double Foo(const double& x)
{
return Alpha*x;
}
当我用
编译时gcc main.cpp Functions.cpp
我收到错误“Functions.cpp :(。text + 0xa):未定义引用”Alpha“”。
答案 0 :(得分:17)
您已声明了一个名为Alpha
的全局变量,但尚未对其进行定义。在一个源文件中,写入文件范围:
int Alpha;
或使用初始化程序:
int Alpha = 42;
请注意,您在Alpha
中定义的名为main
的局部变量与此全局变量不同且完全无关。