我是靠谱客的博主 悦耳月光,最近开发中收集的这篇文章主要介绍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

最后

以上就是悦耳月光为你收集整理的Centos7分部骤编译单文件执行程序的全部内容,希望文章能够帮你解决Centos7分部骤编译单文件执行程序所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部