linuxvimgccgdb开发cc程序环境搭建

合集下载

Linux下的软件开发和编译环境配置

Linux下的软件开发和编译环境配置

Linux下的软件开发和编译环境配置在Linux操作系统中,配置适合软件开发和编译的环境是非常重要的。

正确地设置开发环境,可以提高开发效率,同时确保软件的质量和稳定性。

本文将介绍如何在Linux下配置软件开发和编译环境,以帮助开发人员顺利进行开发工作。

一、安装必要的开发工具在开始配置软件开发环境之前,您需要安装一些必要的开发工具。

在Linux中,常用的开发工具包括GCC编译器、Make工具、调试器(如GDB)、版本控制工具(如Git)等。

您可以通过包管理器(如APT、YUM等)来安装这些工具。

以下是安装这些工具的示例命令(以基于Debian的系统为例):```sudo apt-get updatesudo apt-get install build-essentialsudo apt-get install gdbsudo apt-get install git```通过执行这些命令,您可以安装所需的开发工具,以便后续的配置步骤。

二、配置开发环境要配置软件开发环境,您需要设置一些环境变量和配置文件。

以下是一些常见的配置步骤:1. 配置PATH环境变量在Linux中,PATH环境变量用于指定可执行程序的搜索路径。

为了方便地访问开发工具和编译器,您应该将它们所在的目录添加到PATH环境变量中。

您可以通过编辑`.bashrc`文件来实现这一点。

打开终端,输入以下命令编辑文件:```vi ~/.bashrc```在文件末尾添加以下行(假设开发工具的路径为`/usr/local/bin`):```export PATH=$PATH:/usr/local/bin```保存并退出文件。

然后,使用以下命令使更改生效:```source ~/.bashrc```现在,您可以在任何目录下直接运行开发工具和编译器。

2. 配置编辑器选择一个适合您的编辑器来编写代码是很重要的。

在Linux中有多种编辑器可供选择,如Vim、Emacs、Sublime Text等。

c程序实验报告一 c程序的运行环境及运行方法

c程序实验报告一 c程序的运行环境及运行方法

c程序实验报告一 c程序的运行环境及运行方法一、C程序的运行环境C程序是需要在计算机上运行的,因此它需要一个运行环境。

C语言最常见的运行环境是Windows和Unix/Linux。

1. Windows运行环境在Windows环境下,可以使用Microsoft Visual Studio或Code::Blocks等集成开发环境(IDE)来编写和运行C程序。

Visual Studio是一种比较常见且功能强大的IDE,它集成了调试器、编辑器和编译器。

在Visual Studio中,可以直接输入C代码,编辑并编译运行,也可以在命令行使用编译器gcc来编译运行C程序。

2. Unix/Linux运行环境在Unix/Linux环境下,可以使用诸如打开源软件组合(GCC)之类的编译器来编写和运行C程序。

GCC是一种功能齐全的C编译器,它在大多数Unix系统上都可用。

在Unix/Linux环境下,C程序可以在命令行上使用gcc编译并运行。

C程序的运行方法主要包括两种:使用命令行运行C程序和在IDE中运行C程序。

1. 命令行运行C程序使用GCC编译器将C代码编译为可运行二进制文件,然后在命令行上运行该二进制文件即可运行C程序。

以下是在Linux环境下的例子:(1)编写一个简单的C程序hello.c:```c#include <stdio.h>(2)使用gcc编译这个程序:$ gcc -o hello hello.c-o指定输出文件名,hello是可执行文件名。

(3)在终端上运行程序:$ ./hello输出:Hello World!2. 在IDE中运行C程序在IDE中运行C程序可以通过以下步骤完成:(1)打开IDE(例如Visual Studio)并创建一个新项目。

(2)在新项目上创建一个新的C源代码文件并输入C代码。

(3)编译代码,IDE将使用内置的编译器将C代码编译为可执行文件。

(4)运行程序,IDE将启动应用程序并附加调试器,编译器会自动转换代码并在调试器中执行。

第2章Linux编程环境

第2章Linux编程环境
第21页,共37页。
第2章Linux编程环境
工程中共有5个文件,在add目录中有add_int.c和add_float.c两个文件分别计算整形和浮点型的相加 ;在sub目录下有文件sub_int.c和sub_float.c,分别计算整形和浮点型的相减;顶层目录有文件main.c负责整个程序

工程中的代码分别存放在add/add_int.c、add/add_float.c、add/add.h、sub/sub_int.c 、sub/sub_float.c、sub/sub.h和main.c中。
set shiftwidth=2
#设置缩进为2个空格
set tabstop=2
#设置<TAB>键宽度为2个空格
set number
#显示行号
再次启动vim对缩进宽度,Tab键的宽度都进行了设定,并且自动显示行号。
第6页,共37页。
第2章Linux编程环境
在Linux下还有一些其他的编辑器,例如Gvim等(Gvim是vim的gnome版本)、codeblocks(严 格来说是一个IDE开发环境)。
下面是一个程序的源代码,代码的作用是在控制台输出“Hello World!”字符串。
/*hello.c*/ #include <stdio.h> int main(void) {
printf(“Hello World!\n”);
return 0;
}
第11页,共37页。
第2章Linux编程环境
目标文件是指经过编译器的编译生成的CPU可识别的二进制代码,因为其中的一些函数过程没有相关
vim的编辑命令有很多,本小节选取经常使用的几个命令进行介绍。介绍如何在vim下移动光标,进行删除字 符、复制、查找、转跳等操作。

实验报告linux编程

实验报告linux编程

实验报告linux编程实验报告:Linux编程引言:Linux操作系统是一种开源的操作系统,具有高度的灵活性和可定制性。

在本次实验中,我们将探索Linux编程的基本概念和技术。

通过编写简单的程序,我们将了解Linux系统的工作原理以及如何利用其强大的功能来开发应用程序。

一、Linux操作系统简介Linux操作系统是一种基于Unix的开源操作系统,它由许多不同的组件组成,包括内核、命令行工具和图形界面等。

Linux操作系统具有许多优势,如稳定性、安全性和可扩展性。

它广泛用于服务器、嵌入式设备和个人电脑等领域。

二、Linux编程环境搭建1. 安装Linux操作系统:选择适合自己的Linux发行版,如Ubuntu、Fedora等,并按照官方指南进行安装。

2. 安装开发工具:在Linux系统上进行编程需要安装一些开发工具,如GCC编译器、GNU调试器(GDB)等。

三、Linux编程基础1. Shell脚本编程:Shell是Linux系统的命令行解释器,通过编写Shell脚本可以实现自动化任务和批处理任务。

Shell脚本使用一些特定的语法和命令来执行任务。

2. C语言编程:C语言是Linux系统中最常用的编程语言之一,通过编写C程序可以实现更高级的功能。

C语言提供了丰富的库函数和系统调用,可以与Linux系统进行交互。

四、Linux系统编程1. 进程管理:Linux系统是一个多进程的操作系统,通过编写程序可以创建、管理和控制进程。

可以使用fork()和exec()等系统调用来创建新进程,使用wait()和kill()等系统调用来管理进程。

2. 文件操作:Linux系统中的文件操作是非常重要的一部分,通过编写程序可以实现文件的读取、写入和修改等功能。

可以使用open()、read()和write()等系统调用来进行文件操作。

3. 网络编程:Linux系统支持网络编程,通过编写程序可以实现网络通信的功能。

可以使用socket()和bind()等系统调用来创建和管理网络套接字。

Linux操作系统下的C语言开发环境搭建测试题

Linux操作系统下的C语言开发环境搭建测试题

Linux操作系统下的C语言开发环境搭建测试题(答案见尾页)一、选择题1. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 设置环境变量C. 编译和运行C程序D. 配置终端2. 在Linux操作系统中,以下哪个命令可以用来编译和运行C程序?A. gccB. g++C. chmodD. make3. 在Linux操作系统中,如何修改默认的编译器路径?A. 修改PATH环境变量B. 使用export命令C. 编辑/etc/profile文件D. 修改gcc的配置文件4. 在Linux操作系统中,安装了GCC编译器后,如何验证其安装成功?A. 输入gcc --version命令B. 输入gcc -v命令C. 输入gcc --configure命令D. 输入gcc -E命令5. 在Linux操作系统中,如何配置终端以方便进行C语言编程?A. 更改终端的提示符B. 安装tmux或screen工具C. 配置bashrc文件6. 在Linux操作系统中,如何使用GDB调试器调试C程序?A. 安装gdb软件包B. 编译程序时添加-g选项C. 使用gdb命令启动程序D. 查看程序内存布局7. 在Linux操作系统中,如何查看源代码文件的内容?A. 使用cat命令B. 使用less命令C. 使用grep命令D. 使用find命令8. 在Linux操作系统中,如何使用vi编辑器编辑C语言源代码文件?A. 进入vi编辑器B. 编辑文件内容C. 保存文件并退出vi编辑器D. 检查文件是否已保存9. 在Linux操作系统中,如何通过FTP上传和下载文件?A. 使用ftp命令B. 使用sftp命令C. 使用scp命令D. 使用ls命令10. 在Linux操作系统中,如何设置用户权限以确保C语言源代码的安全?A. 使用chmod命令B. 使用chown命令C. 使用umask命令D. 使用acl命令11. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?B. 设置环境变量C. 配置编译选项D. 编译和运行C程序12. 在Linux系统下,如何修改一个文件的权限使其可读可写?A. chmod 666 filenameB. chmod 777 filenameC. chmod 644 filenameD. chmod 755 filename13. 在Linux系统下,使用以下哪个命令可以查看文件的详细信息,如文件大小、创建日期等?A. ls -lB. df -hC. tar -xvf file.tarD. stat filename14. 在Linux系统下,如何使用vi编辑器打开一个文件?A. vi filenameB. vim filenameC. nano filenameD. emacs filename15. 在Linux系统下,安装了GCC编译器后,如何验证其是否正确安装?A. echo $PATHB. which gccC. gcc --versionD. all of the above16. 在Linux系统下,如何创建一个新的目录并进入该目录?A. mkdir new_directoryB. cd new_directoryC. rmdir new_directoryD. mkdir -p new_directory17. 在Linux系统下,如何使用grep命令在文本中搜索特定的字符串?A. grep "search_string" filenameB. grep "search_string" filename | lessC. grep "search_string" filename | moreD. all of the above18. 在Linux系统下,如何修改一个文件的换行符为LF(Unix风格)?A. dos2unix filenameB. unix2dos filenameC. cat filename | tr '' '' > filenameD. all of the above19. 在Linux系统下,如何使用find命令查找特定文件?A. find / -name "filename_pattern"B. find . -type f -name "filename_pattern"C. find / -name "filename_pattern" -printD. all of the above20. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装编译器B. 配置编译环境变量C. 安装文本编辑器D. 编写、编译和运行C源代码21. 在Linux操作系统下,以下哪个命令可以用来编译和运行C语言源代码?A. gccB. g++C. chmodD. make22. 在Linux操作系统下,以下哪个命令可以用来安装一个新的C语言库?A. apt-getB. yumC. pacman23. 在Linux操作系统下,以下哪个命令可以用来查看源代码的层次结构?A. catB. grepC. treeD. less24. 在Linux操作系统下,以下哪个命令可以用来创建一个新目录?A. mkdirB. rmdirC. touchD. cp25. 在Linux操作系统下,以下哪个命令可以用来删除一个文件?A. rmB. mvC. rmdirD. cp26. 在Linux操作系统下,以下哪个命令可以用来复制文件或目录?A. cpB. mvC. rmD. ln27. 在Linux操作系统下,以下哪个命令可以用来查看文件的内容?A. catB. grepC. lessD. head28. 在Linux操作系统下,以下哪个命令可以用来查找文件?A. findB. locateD. man29. 在Linux操作系统下,以下哪个命令可以用来查看当前目录的内容?A. lsB. cdC. pwdD. man30. Linux操作系统下,C语言开发环境的搭建需要哪些步骤?A. 安装GCC编译器B. 配置内核头文件C. 安装文本编辑器D. 配置终端环境31. 在Linux操作系统下,如何验证C语言编译成功?A. 编译一个简单的C源代码,观察是否有语法错误B. 使用命令行进入编译后的目录,查看生成的可执行文件C. 在终端中输入编译命令,观察是否有错误信息D. 将编译后的程序在另一个系统中运行,检查功能是否实现32. Linux操作系统下,C语言开发常用的文本编辑器有哪些?A. VimB. EmacsC. nanoD. Kate33. 在Linux操作系统下,如何配置终端环境以便于C语言编程?A. 设置默认编码为UTF-8B. 配置PATH环境变量,确保编译器路径已添加C. 安装并配置版本控制工具(如Git)D. 配置别名,提高编程效率34. 在Linux操作系统下,C语言开发中常用的调试工具有哪些?A. GDB调试器B. DDD调试工具C. Valgrind内存检测工具D. printf()函数调试35. Linux操作系统下,C语言开发环境的搭建过程中,如何配置网络连接?A. 修改网络配置文件,设置静态IP地址B. 关闭防火墙,确保端口畅通C. 配置DNS服务器,解析域名D. 使用Wireshark工具监控网络流量36. 在Linux操作系统下,C语言开发环境中,如何管理项目文件?A. 使用版本控制工具(如Git)进行项目管理B. 使用文件系统树形结构管理项目文件C. 使用目录和文件名来管理项目文件D. 使用标签系统管理项目文件37. Linux操作系统下,C语言开发环境的搭建完成后,如何优化编译速度?A. 升级GCC编译器到最新版本B. 优化编译选项,减少编译时间C. 使用增量编译,避免重复编译D. 使用并行编译,提高编译速度38. 在Linux操作系统下,C语言开发环境的搭建过程中,如何安装必要的库文件?A. 使用包管理器(如apt或yum)安装库文件B. 从官方网站下载库文件并手动安装C. 从源代码编译库文件并安装D. 使用静态链接库文件,减少动态链接的内存开销39. Linux操作系统下,C语言开发环境的搭建完成后,如何进行代码测试和调试?A. 使用GDB调试器进行单步调试B. 使用DDD调试工具查看内存状态C. 使用printf()函数打印变量值进行调试D. 使用单元测试框架进行自动化测试40. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 配置环境变量C. 安装文本编辑器D. 编译和运行C程序41. 在Linux操作系统下,以下哪个命令可以用来查看系统中的所有进程?A. ps -efB. topC. freeD. all42. 在Linux操作系统下,如何修改一个文件的权限使得文件所有者具有读写权限,其他用户只具有读权限?A. chmod 644 filenameB. chmod 755 filenameC. chmod 664 filenameD. chmod 777 filename43. 在Linux操作系统下,使用以下哪个命令可以查看当前目录下的隐藏文件?A. ls -aB. ls -lC. ls -hD. ls -d44. 在Linux操作系统下,如何安装一个新软件包?A. apt-get updateB. yum install package_nameC. pacman -S package_nameD. brew install package_name45. 在Linux操作系统下,如何使用grep命令查找包含特定字符串的文件?A. grep "search_string" filenameB. grep "search_string" /path/to/filenameC. grep "search_string" $(find /path/to/search -type f)D. grep "search_string" /path/to/search/*46. 在Linux操作系统下,如何修改文件的所有者和组?A. chown new_owner:new_group filenameB. chown new_owner:new_group /C. chown new_owner:new_group *D. chown new_owner:new_group .47. 在Linux操作系统下,如何创建一个新的用户组?A. groupadd group_nameB. groupadd -g GID group_nameC. groupadd -G GID group_nameD. groupadd -p group_name48. 在Linux操作系统下,如何设置Shell提示符?A. export PS1="\u@\h:\w\$ "B. export PS1="\u@\h:\w\$ "C. export PS1="\u@\h:\w\\$ "D. export PS1="\u@\h:\w\$ "二、问答题1. 请简述在Linux操作系统下搭建C语言开发环境的步骤。

gcc 用法

gcc 用法

gcc 用法GCC (GNU Compiler Collection) 是一套自由软件编译器,可以用于编译多种编程语言的源代码,包括 C、C++、Objective-C、Fortran、Ada 和其他一些语言。

GCC 是GNU计划的一部分,由自由软件基金会维护和发展。

本文将详细介绍 GCC 的使用方法。

一、环境准备在使用GCC之前,需要先安装好GCC。

GCC是开源软件,常见的Linux发行版都默认安装GCC,Windows下可以通过安装Cygwin或MinGW等方式安装GCC。

安装完成后,在命令行中输入gcc --version查看gcc的版本号确认是否安装成功。

除了GCC之外,还需要一个文本编辑器来编写源代码。

Windows下常用的文本编辑器有Notepad++,Linux下则使用vim或emacs等编辑器。

还需要了解一些基本的编程知识和语法。

二、GCC 编译 C 语言程序以下是一个简单的 C 语言程序,可以输出 "Hello, world!":```c#include <stdio.h>printf("Hello, world!\n");return 0;}```将上述代码保存为 helloworld.c 文件,然后在命令行中进入文件所在目录,输入以下命令编译该程序:```gcc helloworld.c -o helloworld```gcc是编译器的命令,helloworld.c是待编译的源代码文件名,-o helloworld是生成的可执行文件名。

执行上述命令后,GCC 会把源代码编译成可执行文件 helloworld。

运行该可执行文件,可以得到以下输出:```Hello, world!```三、GCC 编译 C++ 程序GCC 也可以编译 C++ 程序,以下是一个简单的 C++ 程序,可以输出 "Hello,world!":```c++#include <iostream>std::cout << "Hello, world!" << std::endl;return 0;}```将上述代码保存为 helloworld.cpp 文件,然后在命令行中进入文件所在目录,输入以下命令编译该程序:```g++ helloworld.cpp -o helloworld```g++是编译器的命令,helloworld.cpp是待编译的源代码文件名,-o helloworld是生成的可执行文件名。

Linux_3_编译工具链

Linux_3_编译工具链

编译工具链前面我们写程序的时候用的都是集成开发环境(IDE: Integrated Development Environment),集成开发环境可以极大地方便我们程序员编写程序,但是配置起来也相对麻烦。

在 Linux 环境下,我们用的是编译工具链,又叫软件开发工具包(SDK: Software Development Kit)。

Linux 环境下常见的编译工具链有:GCC 和 Clang,我们使用的是 GCC。

1编译gcc、g++分别是 gnu 下的 c 和 c++编译器。

$ sudo a pt inst a ll g cc gd b# 安装g cc和gd b$ g cc-v# 查看g cc的版本在讲如何编译之前,有必要给大家回顾一下生成可执行程序的整个过程:对应的 gcc 命令如下:g cc-E hello.c-o hello.i# -E激活预处理,生成预处理后的文件g cc-S hello.i-o hello.s# —S激活预处理和编译,生成汇编代码g cc-c hello.s-o hello.o# -c激活预处理、编译和汇编,生成目标文件g cc hello.o-o hello# 执行所有阶段,生成可执行程序其实没必要指定每一个步骤,我们常常会这样用:g cc-c hello.c# 生成目标文件,g cc会根据文件名hello.c生成hello.og cc hello.o-o hello# 生成可执行程序hello,这里我们需要指定可执行程序的名称,否则会默认生成a.out甚至有时候,我们会一步到位:g cc hello.c-o hello# 编译链接,生成可执行程序hello1.1G C C其它选项选项含义-Wall生成所有警告信息-O0,-O1,-O2,-O3编译器的4个优化级别,-O0表示不优化,-O1为缺省值,-O3的优化级别最高-g指示编译器在编译的时候产生调试相关的信息。

(调试程序必须加上这个选项)-Dmacro相当于在文件的开头加了#define macro-Dmacro=value相当于在文件的开头加了#define macro value-Idir对于#include "file",gcc/g++会先在当前目录查找你所指定的头文件,如果没有找到,他会到系统的 include 目录找.如果使用-I 指定了目录,他会先在你所指定的目录查找,然后再按常规的顺序去找。

基于Linux的嵌入式交叉编译环境的建立及实现

基于Linux的嵌入式交叉编译环境的建立及实现

不紊 的进 行 。 iu Ln x操 作 系统 的建立 可 以选 择在 P C机
上 安装 L n x操 作 系统 或 者 在 Wid w iu n o s下 安 装 虚 拟 Ln x环 境 软件 [ 。L n x开发 环境 方案 有 以下 几种 : iu 2 iu ]
进 行 项 目开发 的 时候必 须 搭建 一 套 开发 环 境 , 包括 操
Env r n e s d o Li ux i o m ntBa e n n 刘永 林 梁 莹 王诗 琴 师 惠萍 ( 中北大 学山西省 现代 无损检 测工程 技 术研 究 中心 太原 ( 中北大 学山西省 光 电信 息与仪 器 工程技 术研 究 中心 太原 。 00 5 ) 3 0 1 0 05 ) 3 0 1
CCROSS
—ห้องสมุดไป่ตู้
⑧ 系统 头 文件 gich a e : 编译过 程 中函数声 l —edr对 b
明 , 果 缺 少 了头 文 件 , 统 功 能 的很 多 C程 式 将 无 如 系 法 编译 。
C OM PI E — a m—i u L r l x # ma e n k
me c nu onfg i
现 代嵌 入 式行 业 的交 叉 编译 环 境 多种 多样 , 多 很
都 有 各 自的特点 和使 用 的便 利性 , 入 式开 发 人 员往 嵌
往 需要 搭建 一套适 合 自己的交 叉编译 环境 。本 文根 据
硬 件 结 构 和 软 件 需 求 搭 建 了 一 套 工 具 链 , 用 采
“ no s Wid w +Vmwae虚拟 机 ( iu ) 目标 系 统 ” r Ln x + 的 结 构 模 式 , 成交 叉 编译 环 境 的构 建 , 进行 开 发 测 完 并
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux+vim+gcc+gdb开发C/C++程序环境搭建我用的是ubuntu操作系统。

打开终端1.sudo apt-get install vim(vim-full 这个软件自9.10版本被废弃了,不论怎么添加软件源都找不到的,所以直接安装vim就可以了,,也可以安装gvim,,在新立得软件里面搜索vim 就可以找到了)2.sudo apt-get install build-essential // build-essential是c语言的开发包,包含了gcc make gdb和libc函数库很多工具。

或者sudo apt-get install gcc + sudo apt-get install gdb网上有很多版本说要编译安装,这个可能挺复杂的,而且花的时间也不少(没试过阿),,不想在命令行中安装的化,可以下载rpm包直接点击安装,3.gcc只是一个编译器,vim是编辑器(也可以用gedit编辑源代码),gdb是调试器,,可以新建一个test.c的helloworld文件测试以下4.一般c程序就用gcc编译,c++程序就用g++编译[介绍]-----------------------------------------常见用法:GCC 选项GCC 有超过100个的编译选项可用。

这些选项中的许多你可能永远都不会用到,但一些主要的选项将会频繁用到。

很多的GCC 选项包括一个以上的字符。

因此你必须为每个选项指定各自的连字符,并且就象大多数Linux 命令一样你不能在一个单独的连字符后跟一组选项。

例如,下面的两个命令是不同的:gcc -p -g test.cgcc -pg test.c第一条命令告诉GCC 编译test.c 时为prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里。

第二条命令只告诉GCC 为gprof 命令建立剖析信息。

当你不用任何选项编译一个程序时,GCC 将会建立(假定编译成功)一个名为 a.out 的可执行文件。

例如,下面的命令将在当前目录下产生一个叫 a.out 的文件:gcc test.c你能用-o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out。

例如,将一个叫count.c 的 C 程序编译为名叫count 的可执行文件,你将输入下面的命令:gcc -o count count.c注意: 当你使用-o 选项时, -o 后面必须跟一个文件名。

-c 只编译并生成目标文件。

--------------------------------------------------------------------------------gcc and g++分别是gnu的c & c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld][参数详解]-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效。

也就是根据约定C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。

可以使用的参数码有下面的这些`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and `a ssembler-with-cpp'.看到英文,应该可以理解的。

例子用法:gcc -x c hello.pig-x none filename关掉上一个选项,也就是让gcc根据文件名后缀,自动识别文件类型例子用法:gcc -x c hello.pig -x none hello2.c-c只激活预处理,编译,和汇编,也就是他只把程序做成obj文件例子用法:gcc -c hello.c他将生成.o的obj文件-S只激活预处理和编译,就是指把文件编译成为汇编代码。

例子用法gcc -S hello.c他将生成.s的汇编代码,你可以用文本编辑器察看-E只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面.例子用法:gcc -E hello.c > pianoapan.txtgcc -E hello.c | more慢慢看吧,一个hello word 也要与处理成800行的代码-o制定目标名称,缺省的时候,gcc 编译出来的文件是 a.out,很难听,如果你和我有同感,改掉它,哈哈例子用法gcc -o hello.exe hello.c (哦,windows用习惯了)gcc -o hello.asm -S hello.c-pipe使用管道代替编译中临时文件,在使用非gnu汇编工具的时候,可能有些问题gcc -pipe -o hello.exe hello.c-ansi关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及UNIX,vax等预处理宏-fno-asm此选项实现ansi选项的功能的一部分,它禁止将asm,inline和typeof用作关键字。

-fno-strict-prototype只对g++起作用,使用这个选项,g++将对不带参数的函数,都认为是没有显式的对参数的个数和类型说明,而不是没有参数. 而gcc无论是否使用这个参数,都将对没有带参数的函数,认为城没有显式说明的类型-fthis-is-varialble就是向传统c++看齐,可以使用this当一般变量使用.-fcond-mismatch允许条件表达式的第二和第三参数类型不匹配,表达式的值将为void类型-funsigned-char-fno-signed-char-fsigned-char-fno-unsigned-char这四个参数是对char类型进行设置,决定将char类型设置成unsignedchar(前两个参数)或者signed char(后两个参数)-include file包含某个代码,简单来说,就是便以某个文件,需要另一个文件的时候,就可以用它设定,功能就相当于在代码中使用#include<filename>例子用法:gcc hello.c -include /root/pianopan.h-imacros file将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中-Dmacro相当于C语言中的#define macro-Dmacro=defn相当于C语言中的#define macro=defn-Umacro相当于C语言中的#undef macro-undef取消对任何非标准宏的定义-Idir在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如果没有找到,他会到缺省的头文件目录找,如果使用-I制定了目录,他会先在你所制定的目录查找,然后再按常规的顺序去找.对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺省的头文件目录查找-I-就是取消前一个参数的功能,所以一般在-Idir之后使用-idirafter dir在-I的目录里面查找失败,讲到这个目录里面查找.-iprefix prefix-iwithprefix dir一般一起使用,当-I的目录查找失败,会到prefix+dir下查找-nostdinc使编译器不再系统缺省的头文件目录里面找头文件,一般和-I联合使用,明确限定头文件的位置-nostdin C++规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,.此选项在创libg++库使用-C在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的-M生成文件关联的信息。

包含目标文件所依赖的所有源代码你可以用gcc -M hello.c 来测试一下,很简单。

-MM和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。

-MD和-M相同,但是输出将导入到.d的文件里面-MMD和-MM相同,但是输出将导入到.d的文件里面-Wa,option此选项传递option给汇编程序;如果option中间有逗号,就将option分成多个选项,然后传递给会汇编程序-Wl.option此选项传递option给连接程序;如果option中间有逗号,就将option分成多个选项,然后传递给会连接程序.-llibrary制定编译的时候使用的库例子用法gcc -lcurses hello.c使用ncurses库编译程序-Ldir制定编译的时候,搜索库的路径。

比如你自己的库,可以用它制定目录,不然编译器将只在标准库的目录找。

这个dir就是目录的名称。

-O0-O1-O2-O3编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高-g只是编译器,在编译的时候,产生调试信息。

-gstabs此选项以stabs格式声称调试信息,但是不包括gdb调试信息.-gstabs+此选项以stabs格式声称调试信息,并且包含仅供gdb使用的额外调试信息.-ggdb此选项将尽可能的生成gdb的可以使用的调试信息.-static此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么动态连接库,就可以运行.-share此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.-traditional试图让编译器支持传统的C语言特性[参考资料]-Linux/UNIX高级编程中科红旗软件技术有限公司编著.清华大学出版社出版-Gcc man page[ChangeLog]-2002-08-10ver 0.1 发布最初的文档-2002-08-11ver 0.11 修改文档格式-2002-08-12ver 0.12 加入了对静态库,动态库的参数-2002-08-16ver 0.16 增加了gcc编译的4个阶段的命令运行gcc/egcs**********运行gcc/egcs***********************GCC 是GNU 的 C 和C++ 编译器。

实际上,GCC 能够编译三种语言:C、C++ 和Object C(C 语言的一种面向对象扩展)。

相关文档
最新文档