C의 정적 변수 링크 오류
C 코드를 컴파일할 때, 특히 Mac에서 "정적 변수 링크 오류"가 발생할 수 있습니다. 제공된 코드 조각에 보고된 것과 유사합니다. 이 오류는 일반적으로 외부(*.cpp 파일)에서 적절하게 정의되지 않은 정적 변수를 참조하려고 할 때 발생합니다.
문제의 근본
제공된 코드에서 정적 변수 "theString"은 "Log.h" 헤더 파일에 선언되었지만 정의되지는 않았습니다. 정적 변수는 메모리를 예약하고 초기화하기 위해 해당 *.cpp 파일에 외부 정의가 필요합니다.
해결 방법
연결 오류를 해결하려면 정의를 추가하면 됩니다. 표시된 대로 "theString"을 "Log.cpp" 파일에 추가합니다. 아래:
// Log.cpp string Log::theString; // Define the static string here
추가 권장 사항
정적 변수를 외부에서 정의하는 것 외에도 "네임스페이스 std 사용"을 사용하지 않는 것이 좋습니다. 헤더 파일에. 이러한 관행은 네임스페이스 오염으로 이어질 수 있으며, 향후 코드 디버깅 및 유지 관리가 더 어려워집니다.
위 내용은 내 C 코드에서 정적 변수 연결 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!