LNK2004是什么意思能举个例子解释下吗?该如何处理
LNK2004是什么意思能举个例子解释下吗?
在msdn上找到了解释但是看不懂,晕
链接器工具错误 LNK2004
错误消息
“target”的 gp 相对链接地址信息溢出;短节“section”太大或超出范围。
节太大。
要解决此错误,请减小短节的大小,方法是通过 #pragma 节(“.sectionname”、读、写、长)显式将数据放在长节中,或者对数据定义和声明使用 __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;
短节、长节、gp都是什么意思啊?谢谢先了
------解决方案--------------------
看 英文原文的
------解决方案--------------------
虫子说得对,看英文。
我就发现msdn翻译的很烂...(可能以偏概全了^_^)
------解决方案--------------------
MSDN还有中文的?呵呵,多看看英文的吧!
在msdn上找到了解释但是看不懂,晕
链接器工具错误 LNK2004
错误消息
“target”的 gp 相对链接地址信息溢出;短节“section”太大或超出范围。
节太大。
要解决此错误,请减小短节的大小,方法是通过 #pragma 节(“.sectionname”、读、写、长)显式将数据放在长节中,或者对数据定义和声明使用 __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;
短节、长节、gp都是什么意思啊?谢谢先了
------解决方案--------------------
看 英文原文的
------解决方案--------------------
虫子说得对,看英文。
我就发现msdn翻译的很烂...(可能以偏概全了^_^)
------解决方案--------------------
MSDN还有中文的?呵呵,多看看英文的吧!