码迷,mamicode.com
首页 > 其他好文 > 详细

gcc编译器用法

时间:2018-01-06 14:21:38      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:const   执行   end   file   调试   return   gdb   代码   reserve   

一个用c语言写的程序把他编译成计算机可指行的文件,一般有4个步骤

/*================================================================
*   Copyright (C) 2018 . All rights reserved.
*   
*   文件名称:helloworld.c
*   创 建 者:ghostwu(吴华)
*   描    述:gcc编译器用法演示
*
================================================================*/

#include <stdio.h>
#define HELLO "hello world!\n"

int main(int argc, char *argv[])
{
    printf( HELLO );    
    return 0;
}

1,预处理:这个步骤,主要是包含头文件,展开宏定义

gcc -E helloworld.c -o helloworld.i

2,生成汇编代码

gcc -S helloworld.i -o helloworld.s

3,编译汇编

gcc -c helloworld.s -o helloworld.o

4,链接

gcc helloworld.o -o helloworld

通常写完程序,我们用 gcc helloworld.c -o helloworld 直接完成以上四个步骤

 

gcc常用选项含义:

1. -o output_filename
确定可执行文件的名称为output_filename。如果不给出这个选项,gcc就给出预设的可执行文件名a.out。

2. -c
只编译,不链接成为可执行文件,编译器只是由输入的.c等源文件生成.o为后缀的目标文件。

3. -g
产生调试工具(gdb)所必要的符号信息,要想对编译出的程序进行调试,就必须加入这个选项。

4. -ldirname
将dirname所指出的目录加入到程序头文件目录列表中。

5. -Ldirname
将dirname所指出的目录加入到库文件的目录列表中。

6. -Wall
生成所有警告信息。

 

gcc编译多个模块

helloworld.h

 1 ==============================================================
 2 *   Copyright (C) 2018 . All rights reserved.
 3 *   
 4 *   文件名称:helloworld.h
 5 *   创 建 者:ghostwu(吴华)
 6 *   描    述:
 7 *
 8 ================================================================*/
 9 
10 #ifndef _HELLO_H_
11 #define _HELLO_H_
12 void say_hello( const char* name );
13 #endif

helloworld.c

/*================================================================
*   Copyright (C) 2018 . All rights reserved.
*   
*   文件名称:helloworld.c
*   创 建 者:ghostwu(吴华)
*
================================================================*/

#include <stdio.h>
#include "helloworld.h"

void say_hello( const char* name ) {
    printf( "%s\n", name );
}

main.c

/*================================================================
*   Copyright (C) 2018 . All rights reserved.
*   
*   文件名称:main.c
*   创 建 者:ghostwu(吴华)
*   描    述:
*
================================================================*/


#include "helloworld.h"

int main(int argc, char *argv[])
{
    say_hello( "hello ghostwu" );
    return 0;
}

编译命令:

gcc helloworld.c main.c -o hello

 

gcc编译器用法

标签:const   执行   end   file   调试   return   gdb   代码   reserve   

原文地址:https://www.cnblogs.com/ghostwu/p/8213864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!