C语言中Linux环境下编译与链接
编写一个简单的 hello.c 文件,以此为例。
1、编译并链接一个完全包含于一个源文件的C程序。
- gcc hello.c
- gcc -Wall hello.c
- gcc -o hello hello.c 或 gcc hello.c -o hello
以上三种方法都会产生一个可执行文件,其中前两个生成的是可执行文件是 a.out ,最后一种生成的是文件名是 hello 的可执行文件。但是这三种办法在编译过程中生成的目标文件(hello.o),在链接完成后,又被自动删除,所以在目录下看不到 .o文件。
2、生成一个目标文件并存在当前目录中
- gcc -c hello.c
会生成一个hello.o的目标文件存在当前目录下
利用 .o文件生成可执行文件
- gcc -o hello hello.o
3、编译并连接多个源文件
- gcc main.c sum.c sort.c
- gcc -Wall main.c sum.c sort.c
- gcc -o run main.c sum.c sort.c
其中main.c是一个主函数,内部调用sum.c及sort.c中定义的函数
4、编译多个源文件并为每一个源文件生成目标文件
- gcc -c main.c sum.c sort.c
链接多个目标文件,生成一个可执行文件
- gcc main.o sum.o sort.o
- gcc -o run main.o sum.o sort.o
C语言中Linux环境下编译与链接的更多相关文章
- Linux环境下编译并执行ava helloworld程序
原文:http://blog.lupaworld.com/home-space-uid-24466-do-blog-id-2578.html 已经学会怎样在Windows下怎样编辑,编译和运行Java ...
- 在虚拟机linux环境下编译windows版adb fastboot
原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...
- linux环境下编译C++ 程序
GCC(GNU Compiler Collection)是Linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活.它可以通过不同的前端模块来支持各种语言,如:Java.Fortran.P ...
- 在linux环境下编译C++ 程序
单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: 单个源文件生成可执行程序 /* helloworld.cpp */ #include ...
- <摘录>Linux 环境下编译 0.11版本内核 kernel
系统环境:Fedora 13 + gcc-4.4.5 最近在看<linux内核0.11完全注释>一书,由于书中涉及汇编语言的地方众多,本人在大学时汇编语言学得一塌糊涂,所以实在看不下去了, ...
- Linux环境下编译JDK
环境准备 操作系统,ubuntu-14.04.6-desktop-amd64.iso,下载地址:http://59.80.44.100/releases.ubuntu.com/14.04/ubuntu ...
- 分布式缓存技术memcached学习(一)——linux环境下编译memcahed
安装依赖工具 [root@localhost upload]# yum install gcc make cmake autoconf libtool 下载并上传文件 memcached 依 ...
- [转载]Linux 环境下编译 0.11版本内核 kernel
最近在看<.如果Clobber/Modify 为空,则其前面的冒号(:)必须省略. 2.如果Output,Input,Clobber/Modify都为空,Output,Input之前的冒号(:) ...
- 分布式缓存技术memcached学习系列(一)——linux环境下编译memcahed
安装依赖工具 [root@localhost upload]# yum install gcc make cmake autoconf libtool 下载并上传文件 memcached 依 ...
随机推荐
- 个人笔记docker
启动docker sudo systemctl start docker.service 暂停docker sudo systemctl stop docker.service 运行docke ...
- uniApp 列表
普通列表 例图: 代码片段: <template> <view class="teacher"> <view class="teacher- ...
- 【SpringBoot】11.Springboot整合SpringMVC+Mybatis(上)
Springboot整合SpringMVC+Mybatis 需求分析:通过使用Springboot+SpringMVC+Mybatis 整合实现一个对数据库表users表的CRUD操作. 1.创建项目 ...
- mongoDB之在windows下的安装
mongoDB官网http://www.mongodb.org/对mongoDB的描述: MongoDB (from "humongous") is an open-source ...
- js try catch 获取错误信息
try{ alert(i); }catch(e){ console.log(e.message,e.name,e.lineNumber) } message -- 错误提示信息 fileName -- ...
- Python_环境搭建_jupyterNotebook的使用
# @ Author : Collin_PXY # 虚拟环境的创建及Jupyter Notebook的基本使用 # Anaconda 和 Jupter Notebook的使用: # 首先得需要安装 A ...
- jenkins配置邮件报错:501 mail from address must be same as authorization user
jenkins配置文件的时候,遇到如下报错: 我的配置是这样的: 最后发现是jenkins url下面的系统管理员邮件地址没写,填写与用户名一致就可以了.
- 6.java设计模式之适配器模式
基本需求: 将一个220V的电压输出成5V的电压,其中220V电压为被适配者,变压器为适配器,5v电压为适配目标 基本介绍: 适配器模式属于结构型模式,将某个类的接口转换成客户端期望的另一个接口表示, ...
- python之路 《六》函数
---恢复内容开始--- 为什么要有函数? 当你的老板要你写一个程序 1 def 函数0(): 2 # 如果cpu占用率>90 3 # 发送邮件 4 # 发出警报 5 6 def 函数1(): ...
- ubuntu13.04修改默认启动内核
ubuntu下面的启动内核选项跟其他操作系统不一样,有个子菜单,比如我在默认的ubuntu13.04上安装了一个新的内核3.14.5,那么默认的第一项是3.14.5内核,第二项是一个子菜单,第二项里面 ...