Error de las herramientas del vinculador LNK2004
desbordamiento de corrección relativo de gp en "target"; la sección corta "section" es demasiado grande o está fuera de intervalo.
La sección era demasiado grande.
Para resolver este error, reduzca el tamaño de la sección corta, ya sea colocando explícitamente los datos en las secciones largas a través de #pragma section(".sectionname", read, write, long) y usando __declspec(allocate(".sectionname"))
en declaraciones y definiciones de datos. Por ejemplo,
#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 };
También puede mover datos agrupados lógicamente a su propia estructura que será una colección de datos superior a 8 bytes que el compilador asignará en una sección de datos larga. Por ejemplo,
// 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 };
Este error precede al error irrecuperable LNK1165
.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de