링커 도구 오류 LNK2004
gp relative fixup overflow to 'target'; 짧은 섹션 'section'이 너무 크거나 범위를 벗어났습니다.
섹션이 너무 컸습니다.
이 오류를 해결하려면 #pragma 섹션(".sectionname", 읽기, 쓰기, long)을 통해 긴 섹션에 데이터를 명시적으로 배치하고 데이터 정의 및 선언을 사용하여 __declspec(allocate(".sectionname"))
짧은 섹션의 크기를 줄입니다. 예를 들면 다음과 같습니다.
#pragma section(".data$mylong", read, write, long)
__declspec(allocate(".data$mylong"))
char rg0[1] = { 1 };
char rg1[2] = { 1 };
char rg2[4] = { 1 };
char rg3[8] = { 1 };
char rg4[16] = { 1 };
char rg5[32] = { 1 };
논리적으로 그룹화된 데이터를 8바이트보다 큰 데이터 컬렉션이 될 자체 구조로 이동할 수도 있습니다. 이 컬렉션은 컴파일러가 긴 데이터 섹션에서 할당합니다. 예를 들면 다음과 같습니다.
// from this...
int w1 = 23;
int w2 = 46;
int w3 = 23*3;
int w4 = 23*4;
// to this...
struct X {
int w1;
int w2;
int w3;
int w4;
} x = { 23, 23*2, 23*3, 23*4 };
이 오류 다음에는 심각한 오류가 발생합니다 LNK1165
.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기