Linux GCC的用法

原创 2013年12月06日 12:28:08
/*
* hello.c
*/
#include<stdio.h> 
#include<stdlib.h> 

int main() 
{ 
	printf("Hello, World!\n"); 
	return 0; 
} 

使用如下命令编译并测试这个代码:

$ gcc -o hello hello.c
$ ./hello
Hello, World!
/* 
* message.c 
*/ 
#include <stdio.h> 

void goodbye_world(void) 
{ 
	printf("Goodbye, World!\n"); 
}

我们需要告诉GCC不要执行任何额外的连接操作,而是使用GNU汇编器将源文件转换为目标代码后就结束  。使用GCC的“-c”标记来编译支持库代码:

$ gcc -c message.c

这一过程的输出结果是一个名为message.o的文件,它包含适合连接到一个较大程序的已编译目标代码。

/** 
* main.c 
*/ 

#include <stdlib.h> 
void good_world(void); 

int main(int argc, char **argv) 
{ 
	goodbye_world(); 
	exit(0); 
}

使用GCC编译这个包裹程序:

$ gcc -c main.c

现在你有了两个目标文件:message.o和main.o。它们包含能够被你的Linux工作站执行的目标代码。要从这个目标代码创建Linux可执行程序,你需要再一次调用GCC来执行连接阶段的工作:

$ gcc -o goodbye message.o main.o

GCC认识目标代码的.o后缀名,并知道应该如何为你调用外部GNU连接器。记住GCC在默认情况下将把所有可执行文件命名为a.out,所以你需要在命令行中指定可执行程序名。在成功将多个源文件编译并连接进单个可执行文件后,你就可以以正常的方式来执行这个程序了。

$ ./goodbye
Goodbye, World!

GNU汇编器

$ gcc -S hello.c

GCC将把你的程序的汇编语言版本输出到文件hello.s。

你可以使用GNU汇编器as来编译源代码hello.s,如下所示:

$ as -o hello.o hello.s

这将产生文件hello.o,它包含针对指定汇编语言源文件的可执行目标代码。  


Linux终端下 GCC基本用法

初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。编译则使用GCC命令。要往下学习首先就得熟悉GCC命令的用法。         GCC...
  • star11053234
  • star11053234
  • 2013年03月23日 20:43
  • 2342

linux下gcc的使用方法

1、打开自己的电脑,之后打开终端,如果桌面上有快捷方式,就直接打开就行,没有的话可以按下键盘上的Ctrl+Alt+T组合键。               2、  build-essential 软件...
  • lihuajie1003
  • lihuajie1003
  • 2015年12月15日 11:06
  • 439

GCC的基本用法

linux下c编程起步一:掌握gcc基本用法    初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。 编译则使用gcc命令。...
  • gechangli7
  • gechangli7
  • 2016年05月30日 20:36
  • 5127

Linux下gcc编译器的使用

例:gcc -x c helloC -o firstC -x:改变gcc的行为。    -x c :编译c程序    -x c++ :编译c++程序    -x java :编译java程序 -o:进...
  • finish_dream
  • finish_dream
  • 2016年03月13日 11:25
  • 623

Linux下C语言编程的-编译命令gcc的使用

我是这样学习Linux下C语言编程的-编译命令gcc的使用关键词: Linux    C语言    编译器    gcc    GNU 原文地址:http://zhoulifa.bokee.com/6...
  • lp2007
  • lp2007
  • 2007年10月19日 13:48
  • 2131

C语言简介,gcc编译器,gcc使用方法

这是c语言第一课程,希望同学们继续关注
  • weixin_39090135
  • weixin_39090135
  • 2017年06月14日 23:00
  • 65

[Linux]使用dlopen、dlsym、dlclose操作访问动态链接库

为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常...
  • lngag110
  • lngag110
  • 2014年07月05日 12:10
  • 689

GCC 对 #pragma pack(N)和__attribute__((packed)) 的支持问题

GCC 对 #pragma pack(N) 的支持问题  #pragma pack 这里重点讨论内存对齐的问题和#pragma pack()的使用方法。 什么是内存对齐? 先看下面的结构:...
  • yi412
  • yi412
  • 2015年06月30日 16:04
  • 2106

linux编程所用的一些工具

C/C++ 编程基础知识: 1.工具使用: 综合: Linux下C语言编程基础知识:http://www.linuxsir.org/bbs/showthread.php?t=7191 Linu...
  • wishfly
  • wishfly
  • 2015年05月14日 07:44
  • 1049

Linux的gcc和g++的区别

Windows中我们常用vs来编译编写好的C和C++代码;vs把编辑器,编译器和调试器等工具都集成在这一款工具中,在Linux下我们能用什么工具来编译所编写好的代码呢,其实Linux下这样的工具有很多...
  • bit_clearoff
  • bit_clearoff
  • 2017年01月01日 12:21
  • 1213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux GCC的用法
举报原因:
原因补充:

(最多只允许输入30个字)