cat /etc/redhat-release
看到操作系统是CentOS Linux release 7.6.1810
,uname -r
看到内核版本是3.10.0-957.el7.x86_64
,as --version
看到as
的版本是2.27-34.base.el7
,ld --version
看到ld
的版本是2.27-34.base.el7
。
absCallWithStart.s
里边的代码如下:
.section .data
.global _start
.section .text
_start:
movq $-5,%rdi
call abs
movq %rax,%rdi
movq $0x3c,%rax
syscall
这一段代码主要是求-5
的绝对值。
as absCallWithStart.s -o absCallWithStart.o
进行汇编。
ld absCallWithStart.o -static -lc -o absCallWithStart
进行链接,报错ld: cannot find -lc
。
sudo yum install -y glibc-static
安装glibc-static
。
ld absCallWithStart.o -static -lc -o absCallWithStart
再次进行链接,./absCallWithStart
进行执行,echo $?
查看一下返回值。