Centos7分部骤编译单文件执行程序

Centos7分部骤编译单文件的64位执行程序

#!/bin/bash
# 脚本执行格式:$ ./build-centos7-x64.sh <source file> <execute file>
#
src=$1
dst=$2
echo 'source file:'$src
echo 'execute file:'$dst

#预编译
gcc -E $src -o $dst.i

# 汇编
gcc -S $dst.i -o $dst.s

# 编译
as $dst.s -o $dst.o

# 链接
ld -m elf_x86_64 /usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib64/crtn.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o \
 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o \
 -dynamic-linker /lib64/ld-linux-x86-64.so.2 \
 $dst.o \
 -lc -o $dst
 
# 删除中间文件
rm $dst.i $dst.s $dst.o

Centos7分步骤编译单文件的32位执行程序

#!/bin/bash
# 脚本执行格式:$ ./build-centos7-x32.sh <source file> <execute file>
#
# 安装32位glibc库文件:
#	sudo yum install  -y glibc-devel.i686
# 安装32位glibc++库文件
#	sudo  yum install -y libstdc++-devel.i686
#
#
src=$1
dst=$2
echo 'source file:'$src
echo 'execute file:'$dst

# 预编译
gcc -E $src -o $dst.i

# 汇编
gcc -m32 -S $dst.i -o $dst.s

# 编译
as --32 $dst.s -o $dst.o

# 链接
ld -melf_i386 /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/32/crtbegin.o \
 /usr/lib/gcc/x86_64-redhat-linux/4.8.5/32/crtend.o \
 -dynamic-linker /lib/ld-linux.so.2 \
 $dst.o \
 -lc -o $dst

# 删除中间文件
rm $dst.i $dst.s $dst.o
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页