[英]Eclipse/GCC: Undefined Reference to Extern Variable
對不起,如果這是一個重復的問題,但我一直在尋找幾個小時,我得到了相互矛盾的答案......更糟糕的是,他們都沒有工作。
這是一件簡單的事情。 我有很多源文件,我有一些常見的參數,我想在一個文件中,比如“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“”。
您已聲明了一個名為Alpha
的全局變量,但尚未對其進行定義。 在一個源文件中,寫入文件范圍:
int Alpha;
或者使用初始化程序:
int Alpha = 42;
請注意,您在main
定義的名為Alpha
的局部變量與此全局變量不同且完全無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.