對靜態變數的未定義引用:解決連結錯誤
編譯C 程式碼時,引用靜態變數時可能會遇到「未定義符號”錯誤頭檔中定義的靜態變數。出現此錯誤的原因是連結器在連結過程中找不到靜態變數的定義。
在提供的範例中,頭檔 Log.h 宣告了一個靜態字串成員 theString。但是,Log.cpp 檔案中缺少此靜態變數的定義。若要解決此問題,請依照下列步驟操作:
在 CPP 檔案中定義靜態變數:
#include "Log.h" #include <iostream> // Define the static variable here string Log::theString; void Log::method(string arg) { theString = "hola"; cout << theString << endl; }
刪除不必要的命名空間宣告:
透過進行這些更改,連結器將能夠在連結期間找到靜態變數的定義,從而解決「未定義的符號」錯誤。
以上是為什麼我的 C 程式碼出現「未定義的靜態變數引用」連結器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!