Ubuntu下c程序运行原理
运行环境:
1、Vitural box下安装Ubuntu虚拟机
2、编译运行工具:gcc
3、编辑器:vim
主要过程:
1、利用vim编辑hello.c


2、编译和执行
(1)预处理阶段:使用 -E命令,得到编译文件; -o将预处理的输出存储到文件

(2)编译阶段:使用-S 命令将预处理文件编译为汇编语言文件,生成文件默认为.s的后缀;-o可以指定产生的汇编文件的名字

(3)汇编阶段:使用-c命令,将汇编文件编译成可重定向的目标文件,(二进制形式,后缀为.o)
也可以结合-o命令产生指定名称的目标文件


(4)链接阶段:链接器将可重定向的文件hello.o以及库文件,执行并入操作,形成可执行的目标文件。
默认生成a.out,可以利用-o选项生成目标文件的名称。

(5)执行阶段:

gcc hello.c -o hello 命令,直接将hello.c编译为可执行的目标文件,中间经过预处理阶段、编译极阶段、汇编阶段、链接阶段。

Ubuntu下c程序运行原理的更多相关文章
- ubuntu下C程序的编辑、编译、运行
均以hello world程序为例 一.vim hello.c/hello.cpp 创建hello.c/hello.cpp文件,并进入vim界面 二.此时按键盘上的很多键均不会有任何反应,键入i,进入 ...
- Java基础知识强化之多线程笔记05:Java程序运行原理 和 JVM的启动是多线程的吗
1. Java程序运行原理: Java 命令会启动Java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程.该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 m ...
- ubuntu下将程序挂后台命令
ubuntu下将程序挂后台命令 nohup python -u main.py > test.out 2>&1 & ubunut下查看后台进程 jobs -l
- Linux:Ubuntu下部署Web运行环境
Linux:Ubuntu下部署Web运行环境 本次博客将会从三部分内容详述Ubuntu系统下Web运行环境的配置: 依次是:FTP服务器的搭建.MYSQL数据库的搭建.JDK的安装等. 参考文章如下: ...
- 第二章--Win32程序运行原理 (部分概念及代码讲解)
学习<Windows程序设计>记录 概念贴士: 1. 每个进程都有赋予它自己的私有地址空间.当进程内的线程运行时,该线程仅仅能够访问属于它的进程的内存,而属于其他进程的内存被屏蔽了起来,不 ...
- linux(ubuntu) 搭建java程序运行环境
一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...
- .NET程序运行原理及基本概念详解
一.引言 我们知道在Java中有虚拟机,代码运行时虚拟机把Java语言编译成与机器无关的字节码,然后再把字节码编译成机器指令执行,那么在.NET中程序是如何运行的呢?其实运行原理是一样的,.NET中的 ...
- Ubuntu下shell脚本运行异常:bash和dash的区别
Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\n ...
- QF——iOS程序运行原理(APP的生命周期)
iOS程序的运行原理: main.m: 1. main.m 主函数是所有程序的入口函数. 2. 在main函数里是UIApplicationMain函数,开启了一个无限循环,以监听该应用. 该UIAp ...
随机推荐
- Windows:打印为PDF(PDF转换器)
造冰箱的大熊猫@cnblogs 2019/4/17 文中图片可通过点击鼠标右键查看大图 Windows下实现PDF打印的几个办法: 1.Foxit Reader(福昕PDF浏览器) 安装Foxit R ...
- HDU 5335 Walk Out BFS 比较坑
H - H Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status ...
- Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 今年是国 ...
- 快速乘(O(1))
inline long long multi(long long x,long long y,long long mod) { long long tmp=(x*y-(long long)((long ...
- Jmeter设置成中文
首次启动Jmeter为中文 选择后即变为中文
- HR问“你目前有几个offer”,聪明人会怎么说?
点击上方“程序员江湖”,选择“置顶或者星标” 你关注的就是我关心的! 一个朋友和我聊天,说起自己最近被虐的面试经历.他985毕业,工作3年,看中了一家月薪1.5万的工作,准备跳槽.虽然在北京不算高 ...
- zookeeper系列(八)zookeeper客户端的底层详解
作者:leesf 掌控之中,才会成功:掌控之外,注定失败.出处:http://www.cnblogs.com/leesf456/p/6098255.html 尊重原创,共同学习进步: 一.前言 ...
- 在mac上如何用safari调试ios手机的移动端页面
第一步:打开iphone手机的开发者模式,流程是:[设置]->[Safari]->[高级]->开启[Web检查器] ,如图1.图2 图1 图2第二步:打开Mac上Safari的开发者 ...
- TCP输入 之 tcp_queue_rcv
tcp_queue_rcv用于将接收到的skb加入到接收队列receive_queue中,首先会调用tcp_try_coalesce进行分段合并到队列中最后一个skb的尝试,若失败则调用__skb_q ...
- DP&图论 DAY 6 下午 考试
DP&图论 DAY 6 下午 考试 样例输入 样例输出 题解 >50 pt dij 跑暴力 (Floyd太慢了QWQ O(n^3)) 枚举每个点作为起点,dijks ...