`
liujun58love
  • 浏览: 15377 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux下使用gcc编译c文件入门

阅读更多
最近有项目用到在linux上使用gcc编译c源程序的工作,于是针对这块做了一些整理,列出

使用gcc在linux下编译c的一些最基础指令

gcc -[command] c文件名称 -o 生成文件别名

command(指令)--

       W----(warning警告)
      
       例如: gcc -Wall hello.c -o hello

       -version (查看当前gcc版本)

       例如:gcc --version

       
       gcc -help(查看帮助)
 
       例如:gcc --help    


       gcc -Wall file1 file2 ... -o outfilename (gcc 编译多个文件)

       注:头文件是不需要进行编译的

       例如:gcc -Wall one.c two.c three.c -o liujun


linux 系统头文件一般放在/usr/include 或者是 /usr/local/include

       include<> 与 include "" 区别是

       include "" 是现在当前目录下查找对应的包含文件,如果没有才会到系统目录去查找对应的头文件

       include <> 是直接到系统目录下去查找对应的头文件,不会在当前目录查找头文件

       
        gcc -v  filename   显示出gcc编译以及链接的所有信息

        例如: gcc -Wall -v hello.c -o hello

        gcc -c filename  将当前文件编译成一个目标文件(但不连接)

        例如 gcc -Wall -c hello.c (生成一个以扩展名为.o的目标文件)


        gcc filename.o filename1.o -o targetFile  将生成的目标文件进行合并成一个可执行文件

        例如:gcc one.o two.o -o hello


        linux 标准库路径 /usr/lib  and /lib
         

        gcc -Wall filename.c /path/file.a  -o targetfilename.o  链接编译外部库

        例如: gcc -Wall main.c /usr/lib/libm.a -o calc

    
        1.gcc -Wall main.c /usr/lib/libm.a -o calc
               
        2.gcc -Wall main.c -lm -o calc 

        注:第二个命令与第一句的文件名是相同的,使用 -l 表明当前文件是一个库文件

         且是以lib为前戳的。


        gcc -I path   告诉编译器在指定的path目录下查找头文件

        例如: gcc -Wall main.c -I/usr/opt

        gcc -L path   告诉编译器在指定的path目录下查找库文件


        ar cr libname.a  file1.o file2.o file3.o ... filen.o

       将单独的目标文件(.o)文件 整合成一个库文件(名字叫libname.a),一般程序

        在与库文件进行结合调用使用

        例如: ar cr libhello.a fun1.o fun2.o

        ar t libname.a  查看当前libname.a库中由多少个目标文件生成

        gcc -Wall  main.c libname.a(o) -o hello  将一个目标文件与一个库文件

        编译生成一个库文件(顺序必须先写调用文件在写库文件)

        gcc -Wall  main.c -L/usr/opt -lhello -o liujun  在/usr/opt目录

        下查找文件名是libhello.a的库文件

        共享库默认加载库目录

        /usr/local/lib  和 /usr/lib  设置LD_LIBRARY_PATH改变共享加载库路径


        gcc -Wall -ansi hello.c -o hello (-ansi 使用标准的c进行编译)

        gcc -Wall -DTEST hello.c -o hello (-D 相当于在程序中的#define TEST)

        cpp -dM /dev/null  (查看gcc中系统内置定义的宏)

     编译程序需要执行四个步骤:
      
       1.预编译:
        cpp main.c > main.i  (将文件main.c文件中包含的头文件的内容加载进当前

        main.i这个文件当中,这就是预编译阶段)

       2.编译转化为汇编语言
       
        gcc -Wall -S main.c (将文件 main.c文件中的内容转化成汇编语言)

       3.生成目标文件

        as main.s -o main.o

       4.链接目标文件到一个可执行文件(包含链接系统头文件库,程序中使用到的静态库或者动态库)

         gcc main.o
       

      file file.o 查看文件信息

        ldd main   查看可执行文件main所依赖的库(main文件必须是可执行文件)
分享到:
评论

相关推荐

    linux操作系统下C语言编程入门 gcc编译

    ### Linux操作系统下C语言编程入门:gcc编译与调试技术 #### 一、基础知识 在Linux环境下进行C语言编程,需要掌握一系列基础知识和技术,其中包括源程序的编译、Makefile的编写、程序库的链接、程序调试以及头文件...

    gcc 编译命令的入门知识

    ### gcc编译命令的入门知识详解 在深入探讨gcc(GNU Compiler Collection)的使用方法之前,我们先简要介绍gcc是什么。GCC是GNU项目的一部分,它不仅是一个C和C++语言的编译器,还支持多种其他编程语言,如Ada、...

    linux 下c语言编程 GCC使用入门.doc

    Linux 下 C 语言编程 GCC 使用入门 本文档旨在为新手提供 Linux 下 C 语言编程 GCC 使用...本文档提供了 Linux 下 C 语言编程 GCC 使用入门的基础知识,包括编译简单的 C 程序、编译器警告和编译多个源文件等内容。

    linux下gcc编译器的简易入门

    介绍了gcc编译器中-o、-c、-Wall等常用选项(参数)的用法,并结合一个实例,详细介绍了gcc编译多个文件生成可执行文件的过程。

    Linux下c语言编程入门.pdf

    在Linux系统下,C语言编程可以使用 GNU gcc 编译器来编译源代码。 编译器是C语言编程的核心工具,它可以将源代码编译成机器代码。GNU gcc 编译器是 Linux 系统下的标准编译器,它支持C语言的编译和链接。使用 GNU ...

    GCC 使用笔记 linux 编程入门

    #### 四、GCC编译流程详解 GCC的编译过程可以分为多个阶段,主要包括预处理、编译、汇编和链接等步骤。 1. **预处理**:在这个阶段,GCC会处理源代码中的预处理指令,如头文件包含(`#include`)、宏定义(`#...

    Linux下C语言编程入门教程

    编写完成后,使用GCC编译器进行编译,命令行输入`gcc -o hello_world hello_world.c`,这会生成一个可执行文件`hello_world`。 学习C语言的过程中,掌握标准输入输出(stdin、stdout和stderr)是关键。在Linux下,...

    Linux操作系统下C语言编程入门.pdf

    在Linux环境下使用C语言编程时,通常会使用GNU的`gcc`编译器来编译C语言源代码。GCC(GNU Compiler Collection)是一个强大的编译器套件,支持多种编程语言,包括C、C++、Objective-C等。 **示例程序编译:** 假设...

    linux系统下C编译器GCC入门.docx

    Linux 系统下 C 编译器 GCC 入门 GCC(GNU C Compiler)是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。在 Linux 系统中,GCC 是一个超级编译器,可以将 C、C++ 语言源程序、汇编语言源...

    linux操作系统下c语言编程入门

    本文档将详细介绍在Linux操作系统环境下使用C语言进行编程的相关知识点。主要内容包括: 1. **Linux程序设计入门——基础知识** - 源程序编译 - Makefile的编写 - 程序库的链接 - 程序的调试 - 头文件与系统...

    linux操作系统下c语言编程入门.pdf

    Linux操作系统下C语言编程入门是指在Linux操作系统下使用C语言进行编程的入门指导。本文将介绍Linux操作系统下C语言编程的基础知识,包括源程序的编译、Makefile的编写、程序库的链接、程序的调试、头文件和系统帮助...

    Linux操作系统下C语言编程入门

    【Linux操作系统下C语言编程入门】是一篇针对初学者的指南,旨在帮助读者在Linux环境下开始C语言编程之旅。文章涵盖了多个关键主题,包括基础知识、进程管理、文件操作、时间概念、信号处理、消息管理、线程操作以及...

    linux操作系统下c语言编程入门,经典总结

    ### Linux操作系统下C语言编程入门:经典总结 在IT领域,尤其是软件开发中,Linux操作系统与C语言结合,成为了一种极为重要的技能组合。本文旨在深入解析Linux环境下C语言编程的关键知识点,涵盖从基础概念到高级...

    Linux操作系统-C语言编程入门 PDF.rar

    本章将介绍GCC(GNU Compiler Collection),它是Linux下的主要C语言编译器,以及如何使用`gcc`命令来编译和运行C程序。同时,还会讲解Makefile的概念,这是一种自动化构建工具,能够简化多文件项目管理。 章节中...

    Linux 操作系统C语言编程入门

    在Linux下编译C程序,你将使用GCC(GNU Compiler Collection)。通过`gcc`命令,你可以将源代码(.c文件)编译成可执行文件。例如,`gcc -o output file.c`会生成名为“output”的可执行文件。如果需要链接特定的库...

Global site tag (gtag.js) - Google Analytics