相关疑难解决方法(0)

R_X86_64_32S和R_X86_64_64重定位是什么意思?

当我尝试在64位FreeBSD中编译C应用程序时出现以下错误:

在制作共享对象时不能使用重定位R_X86_64_32S; 用-fPIC重新编译

什么是R_X86_64_32S搬迁,什么是R_X86_64_64

我已经用Google搜索了错误,这可能是原因 - 如果有人能说出R_X86_64_32S的真正意义,那就太好了.

c compiler-construction linker elf relocation

49
推荐指数
3
解决办法
3万
查看次数

C++链接如何在实践中发挥作用?

C++链接如何在实践中发挥作用?我正在寻找的是关于链接如何发生的详细解释,而不是链接的命令.

关于编译已经有类似的问题,但没有详细说明:编译/链接过程如何工作?

c++ linker

32
推荐指数
3
解决办法
2万
查看次数

gfortran for dummies:mcmodel = medium做了什么?

我有一些代码在编译时给我重定位错误,下面是一个说明问题的示例:

  program main
  common/baz/a,b,c
  real a,b,c
  b = 0.0
  call foo()
  print*, b
  end

  subroutine foo()
  common/baz/a,b,c
  real a,b,c

  integer, parameter :: nx = 450
  integer, parameter :: ny = 144
  integer, parameter :: nz = 144
  integer, parameter :: nf = 23*3
  real :: bar(nf,nx*ny*nz)

  !real, allocatable,dimension(:,:) :: bar
  !allocate(bar(nf,nx*ny*nz))

  bar = 1.0
  b = bar(12,32*138*42)

  return
  end
Run Code Online (Sandbox Code Playgroud)

编译这个gfortran -O3 -g -o test test.f,我得到以下错误:

relocation truncated to fit: R_X86_64_PC32 against symbol `baz_' defined in COMMON section in …
Run Code Online (Sandbox Code Playgroud)

fortran memory-management x86-64 gfortran

16
推荐指数
2
解决办法
2万
查看次数

将 .org 指令与 .data 部分中的数据一起使用:与 ld 相关

在我努力了解如何使用 GNU binutils 使用 Gas构建简单的引导加载程序时,我遇到了一个问题,如何告诉链接器将数据放在使用 .org 推进位置计数器的文件中的位置同时将文件大小保持在 512 字节。我似乎找不到办法做到这一点。

尝试执行此操作的汇编程序是:

# Author: Matthew Hoggan
# Date Created: Tuesday, Mar 6, 2012

.code16                      # Tell assembler to work in 16 bit mode
.section .data
msg:                         # Message to be printed to the screen
  .asciz "hello, world"

.section .text
.globl _start                # Help linker find start of program
_start:
  xor  %ax,  %ax             # Zero out ax register (ah used to specify bios function to Video Services) 
  movw %ax,  %ds             # Since …
Run Code Online (Sandbox Code Playgroud)

linux gnu-assembler ld att

3
推荐指数
1
解决办法
1000
查看次数

重定位在NASM x86_64中截断为适合错误

我正在使用配备Intel Core 2 CPU和2GB RAM的计算机.SO是Ubuntu 9.04.当我尝试编译此代码时:

;programma per la simulazione di un terminale su PC, ottenuto utilizzando l'8250

;in condizione di loopback , cioè Tx=Rx


section .code64

section .data


TXDATA  EQU 03F8H ;TRASMETTITORE

RXDATA  EQU 03F8H ;RICEVITORE

BAUDLSB  EQU 03F8H ;DIVISORE DI BAUD RATE IN LSB

BAUDMSB  EQU 03F9H ;DIVISORE DI BAUD RATE IN MSB

INTENABLE EQU 03F9H ;REGISTRO DI ABILITAZIONE DELL'INTERRUZIONE

INTIDENTIF EQU 03FAH ;REGISTRO DI IDENTIFICAZIONE DELL'INTERRUZIONE

LINECTRL EQU 03FBH ;REGISTRO DI CONTROLLO DELLA LINEA

MODEMCTRL EQU 03FCH …
Run Code Online (Sandbox Code Playgroud)

linker nasm relocation truncated

1
推荐指数
1
解决办法
8294
查看次数