MGA*_*MGA 7 c++ eclipse linker gcc global-variables
对不起,如果这是一个重复的问题,但我一直在寻找几个小时,而且我得到了相互矛盾的答案......更糟糕的是,他们都没有工作.
这很简单.我有很多源文件,我有一些常见的参数,我想在一个文件中,比如"Parameters.h".我想在运行时设置这些参数(一次),方法是将它们作为参数传递给程序.
PS:我知道更好的方法是将所有内容作为参数传递给函数,但它是一块很大的代码,我需要尽快得到一个结果,而不需要做太多的更改.
这是一个最小的工作示例:
Parameters.h
#ifndef PARAMETERS_H_
#define PARAMETERS_H_
extern int Alpha;
#endif
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include <iostream>
#include "Parameters.h"
int main(int argc, char * argv[])
{
const int Alpha = 12.0;
}
Run Code Online (Sandbox Code Playgroud)
Functions.cpp
#include "Parameters.h"
double Foo(const double& x)
{
return Alpha*x;
}
Run Code Online (Sandbox Code Playgroud)
当我编译时
gcc main.cpp Functions.cpp
Run Code Online (Sandbox Code Playgroud)
我收到错误"Functions.cpp :(.text + 0xa):未定义引用"Alpha"".
Igo*_*nik 17
您已声明了一个名为的全局变量Alpha,但尚未定义它.在一个源文件中,写入文件范围:
int Alpha;
Run Code Online (Sandbox Code Playgroud)
或者使用初始化程序:
int Alpha = 42;
Run Code Online (Sandbox Code Playgroud)
请注意,Alpha您在其中定义的名为的局部变量main与此全局变量不同且完全无关.
| 归档时间: |
|
| 查看次数: |
8725 次 |
| 最近记录: |