Home >Backend Development >C++ >Why Am I Getting a Static Variable Linking Error in My C Code?
Static Variable Linking Error in C
When compiling C code, particularly on a Mac, you may encounter a "static variable link error" similar to the one reported in the code snippet provided. This error typically arises when trying to reference a static variable that hasn't been properly defined externally (in the *.cpp file).
Root of the Issue
In the provided code, the static variable "theString" is declared in the "Log.h" header file but is never defined. Static variables require an external definition in the corresponding *.cpp file to reserve memory and initialize them.
Solution
To resolve the linking error, you can add the definition of "theString" to the "Log.cpp" file, as shown below:
// Log.cpp string Log::theString; // Define the static string here
Additional Recommendations
In addition to defining the static variable externally, it's also recommended to avoid using "using namespace std;" in the header file. This practice can lead to namespace pollution, making it harder to debug and maintain your code in the future.
The above is the detailed content of Why Am I Getting a Static Variable Linking Error in My C Code?. For more information, please follow other related articles on the PHP Chinese website!