概述
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
最后
以上就是悦耳月光为你收集整理的Centos7分部骤编译单文件执行程序的全部内容,希望文章能够帮你解决Centos7分部骤编译单文件执行程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复