C++編譯報錯:||error: ld returned 1 exit status|的解決
C++編譯報錯||error: ld returned 1 exit status|
這個問題我遇到過三次了,每次好像原因都不一樣,在網(wǎng)上看到很多博客都記錄了這個問題,每人原因也都不同,所以可以有多種原因都引發(fā)這個錯誤。
但我不懂ld returned 1 exit status|到底是啥意思,所以不能解讀這些問題的相通的共同毛病,但我覺得這肯定是什么比較致命的錯誤,即找不到病根,那就只好從現(xiàn)在開始專門記錄一下各種癥狀
在頭文件中定義變量
今天腦子一昏,竟做出此舉,我很慚愧。
我把外部變量的定義竟寫到了頭文件中, 于是報錯。
然而外部變量可以放在任何源代碼文件中,只要寫在所有函數(shù)外面就行,就是不能放在頭文件中。。。
我是個人才
錯誤代碼:
//coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ double warming = 0.3;//外部變量/全局變量的定義聲明,應(yīng)刪掉這句代碼 void update(double); void local(); #endif // COORDIN_H_
//main.cpp
#include <iostream>
#include "coordin.h"
extern double warming;//應(yīng)改為外部變量/全局變量的定義聲明:double warming = 0.3;
int main()
{
std::cout << "global warming is " << warming << '\n';
update(0.1);//更改全局變量的值
std::cout << "Now global warming is " << warming << '\n';
local();//同名局部變量隱藏全局變量
return 0;
}
//file1.cpp
#include <iostream>
#include "coordin.h"
extern double warming;//引用聲明
void update(double x)
{
warming += x;
}
void local()
{
double warming = 1.2;//隱藏全局變量warming
std::cout << "local warming is " << warming << '\n';
std::cout << "But global warming is " << ::warming << '\n';//::是作用域解析運算符,表示使用變量的全局版本
}
輸出
global warming is 0.3
Now global warming is 0.4
local warming is 1.2
But global warming is 0.4
頭文件只能有下面這些東西,不要企圖在里面定義任何變量。。。

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MFC中動態(tài)創(chuàng)建控件以及事件響應(yīng)實現(xiàn)方法
這篇文章主要介紹了MFC中動態(tài)創(chuàng)建控件以及事件響應(yīng)實現(xiàn)方法,詳細講解了MFC中動態(tài)創(chuàng)建控件以及事件響應(yīng)的概念與實現(xiàn)方法,具有一定的實用價值,需要的朋友可以參考下2014-10-10
c/c++ 函數(shù)返回指針和引用所引發(fā)的問題
本文主要介紹了c/c++ 函數(shù)返回指針和引用所引發(fā)的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2026-05-05

