cat /etc/redhat-release
Voir le système d'exploitation est CentOS Linux release 7.6.1810
, uname -r
voir la version du noyau est 3.10.0-957.el7.x86_64
, la version as --version
que vous voyez as
est 2.27-34.base.el7
, la version ld --version
que vous voyez ld
est 2.27-34.base.el7
.
absCallWithStart.s
Le code à l'intérieur est le suivant :
.section .data
.global _start
.section .text
_start:
movq $-5,%rdi
call abs
movq %rax,%rdi
movq $0x3c,%rax
syscall
Ce morceau de code sert principalement à trouver -5
la valeur absolue.
as absCallWithStart.s -o absCallWithStart.o
compiler.
ld absCallWithStart.o -static -lc -o absCallWithStart
Créez un lien et signalez une erreur ld: cannot find -lc
.
sudo yum install -y glibc-static
installer glibc-static
.
ld absCallWithStart.o -static -lc -o absCallWithStart
Liez à nouveau, ./absCallWithStart
exécutez et echo $?
vérifiez la valeur de retour.