c - 这个 "c(.text+0x7): relocation truncated to fit: 8 .data"是什么类型的错误

标签 c gcc assembly compilation i386

我正在编译/链接我的程序

i386-gcc -o output.lnx func.opc mainc.opc

我一直收到这个错误。老实说我不知道​​这意味着什么。

有什么线索吗?

谢谢

最佳答案

这通常是程序中代码或数据过多的症状。 .text 段(代码)中偏移量 7 处的重定位已编译为固定大小(2 或 4),但它引用的数据/指令超出了 64k 或 2G。

除此之外,在没有实际查看目标文件的情况下,我无法告诉您如何修复它。用于查明问题的有用工具是 objdump(带有标志 -dr)和 readelf 程序。

关于c - 这个 "c(.text+0x7): relocation truncated to fit: 8 .data"是什么类型的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552197/

相关文章:

c - 在没有 malloc、brk 或 mmap 的情况下,BareMetalOS 如何在 Assembly 中分配内存?

c++ - 模板特化适用于 gcc,但不适用于 visual studio 10

assembly - 组装错误A2071 : initializer magnitude too large for specific size

c - 将文件中特定点的数字存储为 (x, y) 坐标

c - 在 C 中使用 union/结构查找内存中的起始地址

c - 为什么编译时已知常数的平方根不需要链接数学库?

c - 使用 OpenMP 停止 GCC 自动矢量化

c - 从函数返回一对项目

c - C中数组按升序排序

外部全局变量的 C 优化