Linux 开发环境搭建与使用——Linux 编译器之 GCC
2017-12-06 00:17
543 查看
Linux 开发环境搭建与使用——Linux 编译器之 GCC编译器http://blog.csdn.net/tennysonsky/article/details/44920447
上一节我们学习了 vim 编辑器,接下来我们一起学习 gcc 编译器,这里,我们要区分编辑器和编译器有何不同?
编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!
编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,GCC 同样适用于微软的 Windows。
GCC 最初用于编译 C 语言,随着项目的发展 GCC 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。
这里只是简单介绍如何编译 C 程序或者 C++ 程序最终成为一个可执行程序。
gcc识别的文件扩展名如下:
.c C 语言文件
.i 预处理后的 C 语言文件
.C、.cc、.cp、.cpp、.c++、.cxx C++语言文件
.ii 预处理后的 C++ 语言文件
.S 汇编文件(用户自己新建的汇编文件)
.s 预处理后的汇编文件
.o 编译后的目标文件
.a 目标文件的静态链接库(链接时使用)
.so 目标文件的动态链接库(链接、运行时使用)
gcc 和 g++ 编译器的编译过程
1、预处理
2、编译
3、汇编
4、链接
gcc 常用编译应用实例
分步编译:
1)gcc -E hello.c -o hello.i
2)gcc -S hello.i -o hello.s
3)gcc -c hello.s -o hello.o
4)gcc hello.o -o hello_elf
编译选项说明:
-o file 指定生成的输出文件名为 file
-E 只进行预处理
-S 只进行预处理和编译
-c 只进行预处理、编译和汇编
文件名后缀说明:
.c C 语言文件
.i 预处理后的 C 语言文件
.s 预处理后的汇编文件
.o 编译后的目标文件
程序编译成功后,通过“./”运行这个可执行程序。
常用编译(还是经过:预处理、编译、汇编、链接的过程):
gcc hello.c -o demo
如果是 C++ 代码,只需改用 g++ 编译器即可。
如果没有 g++ 编译器,在线安装即可:
使用 g++ 编译 c++ 程序:
gcc、g++ 编译的其它一些选项
-v 显示制作gcc工具时的配置命令,显示预处理器、编译器的版本号
-Wall 生成所有级别的警告信息
-w 关闭所有警告,建议不使用此选项
-Idir将dir目录加入头文件搜索目录列表,优先在dir目录中查找包含的头文件
-Ldir
将dir目录加入库文件目录列表,优先在dir目录中查找库文件
-lname
链接库为name的库
-static
链接时使用静态库
-shared
编译动态库
使用的例子代码下载请点此处。
上一节我们学习了 vim 编辑器,接下来我们一起学习 gcc 编译器,这里,我们要区分编辑器和编译器有何不同?
编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!
编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,GCC 同样适用于微软的 Windows。
GCC 最初用于编译 C 语言,随着项目的发展 GCC 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。
这里只是简单介绍如何编译 C 程序或者 C++ 程序最终成为一个可执行程序。
gcc识别的文件扩展名如下:
.c C 语言文件
.i 预处理后的 C 语言文件
.C、.cc、.cp、.cpp、.c++、.cxx C++语言文件
.ii 预处理后的 C++ 语言文件
.S 汇编文件(用户自己新建的汇编文件)
.s 预处理后的汇编文件
.o 编译后的目标文件
.a 目标文件的静态链接库(链接时使用)
.so 目标文件的动态链接库(链接、运行时使用)
gcc 和 g++ 编译器的编译过程
1、预处理
2、编译
3、汇编
4、链接
gcc 常用编译应用实例
分步编译:
1)gcc -E hello.c -o hello.i
2)gcc -S hello.i -o hello.s
3)gcc -c hello.s -o hello.o
4)gcc hello.o -o hello_elf
编译选项说明:
-o file 指定生成的输出文件名为 file
-E 只进行预处理
-S 只进行预处理和编译
-c 只进行预处理、编译和汇编
文件名后缀说明:
.c C 语言文件
.i 预处理后的 C 语言文件
.s 预处理后的汇编文件
.o 编译后的目标文件
程序编译成功后,通过“./”运行这个可执行程序。
常用编译(还是经过:预处理、编译、汇编、链接的过程):
gcc hello.c -o demo
如果是 C++ 代码,只需改用 g++ 编译器即可。
如果没有 g++ 编译器,在线安装即可:
使用 g++ 编译 c++ 程序:
gcc、g++ 编译的其它一些选项
-v 显示制作gcc工具时的配置命令,显示预处理器、编译器的版本号
-Wall 生成所有级别的警告信息
-w 关闭所有警告,建议不使用此选项
-Idir将dir目录加入头文件搜索目录列表,优先在dir目录中查找包含的头文件
-Ldir
将dir目录加入库文件目录列表,优先在dir目录中查找库文件
-lname
链接库为name的库
-static
链接时使用静态库
-shared
编译动态库
使用的例子代码下载请点此处。
相关文章推荐
- Linux 开发环境搭建与使用——Linux 编译器之 GCC
- Linux 开发环境搭建与使用——Linux 编译器之 GCC
- bochs使用(linux下搭建操作系统开发环境,原创)
- 搭建arm-linux-gcc交叉编译工具链环境(Android原生(JNI)开发环境搭建)
- ARM-Tiny6410-开发环境搭建-Hardware && Linux && arm-linux-gcc
- bochs使用(linux下搭建操作系统开发环境)(zt)
- linux下使用pydev eclipse Mysql-python 搭建django开发环境
- JZ2440开发笔记(1)——arm-linux-gcc环境搭建
- Linux开发环境搭建与使用——arm开发板连接终端( xshell )
- 使用Vagrant在Windows平台搭建嵌入式Linux开发环境(3)nfs服务器搭建
- 使用Vagrant在Windows平台搭建嵌入式Linux开发环境(1)虚拟环境部署
- 使用Vagrant在Windows平台搭建嵌入式Linux开发环境(2)Tftpd服务器搭建
- Linux 环境使用 Eclipse 搭建 Android 开发环境
- Linux Python基础知识学习,使用Eclipse与Pydev搭建python开发环境
- Linux开发环境搭建与使用——ubuntu物理机安装方法-wubi
- Linux下使用Eclipse搭建GTK+开发环境
- OK6410 Linux开发环境搭建--编译以及ubuntu的使用方法学习笔记
- arm-linux-gcc 安装和使用(交叉编译环境搭建)
- 虚拟机开发环境搭建(tftp,nfs,samba,arm-linux-gcc)
- Windows/Linux下使用Emacs+Slime+SBCL/SCHEME搭建LISP开发环境