最近有项目用到在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语言编程,需要掌握一系列基础知识和技术,其中包括源程序的编译、Makefile的编写、程序库的链接、程序调试以及头文件...
### gcc编译命令的入门知识详解 在深入探讨gcc(GNU Compiler Collection)的使用方法之前,我们先简要介绍gcc是什么。GCC是GNU项目的一部分,它不仅是一个C和C++语言的编译器,还支持多种其他编程语言,如Ada、...
Linux 下 C 语言编程 GCC 使用入门 本文档旨在为新手提供 Linux 下 C 语言编程 GCC 使用...本文档提供了 Linux 下 C 语言编程 GCC 使用入门的基础知识,包括编译简单的 C 程序、编译器警告和编译多个源文件等内容。
介绍了gcc编译器中-o、-c、-Wall等常用选项(参数)的用法,并结合一个实例,详细介绍了gcc编译多个文件生成可执行文件的过程。
在Linux系统下,C语言编程可以使用 GNU gcc 编译器来编译源代码。 编译器是C语言编程的核心工具,它可以将源代码编译成机器代码。GNU gcc 编译器是 Linux 系统下的标准编译器,它支持C语言的编译和链接。使用 GNU ...
#### 四、GCC编译流程详解 GCC的编译过程可以分为多个阶段,主要包括预处理、编译、汇编和链接等步骤。 1. **预处理**:在这个阶段,GCC会处理源代码中的预处理指令,如头文件包含(`#include`)、宏定义(`#...
编写完成后,使用GCC编译器进行编译,命令行输入`gcc -o hello_world hello_world.c`,这会生成一个可执行文件`hello_world`。 学习C语言的过程中,掌握标准输入输出(stdin、stdout和stderr)是关键。在Linux下,...
在Linux环境下使用C语言编程时,通常会使用GNU的`gcc`编译器来编译C语言源代码。GCC(GNU Compiler Collection)是一个强大的编译器套件,支持多种编程语言,包括C、C++、Objective-C等。 **示例程序编译:** 假设...
Linux 系统下 C 编译器 GCC 入门 GCC(GNU C Compiler)是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。在 Linux 系统中,GCC 是一个超级编译器,可以将 C、C++ 语言源程序、汇编语言源...
本文档将详细介绍在Linux操作系统环境下使用C语言进行编程的相关知识点。主要内容包括: 1. **Linux程序设计入门——基础知识** - 源程序编译 - Makefile的编写 - 程序库的链接 - 程序的调试 - 头文件与系统...
Linux操作系统下C语言编程入门是指在Linux操作系统下使用C语言进行编程的入门指导。本文将介绍Linux操作系统下C语言编程的基础知识,包括源程序的编译、Makefile的编写、程序库的链接、程序的调试、头文件和系统帮助...
【Linux操作系统下C语言编程入门】是一篇针对初学者的指南,旨在帮助读者在Linux环境下开始C语言编程之旅。文章涵盖了多个关键主题,包括基础知识、进程管理、文件操作、时间概念、信号处理、消息管理、线程操作以及...
### Linux操作系统下C语言编程入门:经典总结 在IT领域,尤其是软件开发中,Linux操作系统与C语言结合,成为了一种极为重要的技能组合。本文旨在深入解析Linux环境下C语言编程的关键知识点,涵盖从基础概念到高级...
本章将介绍GCC(GNU Compiler Collection),它是Linux下的主要C语言编译器,以及如何使用`gcc`命令来编译和运行C程序。同时,还会讲解Makefile的概念,这是一种自动化构建工具,能够简化多文件项目管理。 章节中...
在Linux下编译C程序,你将使用GCC(GNU Compiler Collection)。通过`gcc`命令,你可以将源代码(.c文件)编译成可执行文件。例如,`gcc -o output file.c`会生成名为“output”的可执行文件。如果需要链接特定的库...