ubuntu c 编译运行?ubuntu安装c语言编译器
本篇文章给大家谈谈ubuntu c 编译运行,以及ubuntu安装c语言编译器对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
在ubuntu系统中如何用GCC编译运行一个C程序
1、确定安装了gcc编译器后,接下来用vim编辑一个c文件。
2、下图是我在c文件中写入的内容,就简单打印一条语句。
3、写好c文件后,用ls命令查看该文件是否存在。
4、确定c文件存在后,使用命令gcc c文件名-o生成的可执行文件名(例:gcc demo.c-o demo)。输入编译命令后,如果没显示什么信息,就意味编译成功了。
5、编译成功后,再用ls命令查看一下可执行文件是否有生成。
6、最后再运行一下可执行文件,可以看到,正确输出了一条语句。
linux 如何运行编译程序
gcc有多达100多个参数,现介绍常用的几个。如果对其他参数也有兴趣,可以参考:man gcc
预先处理选项
-E:只对文件进行预处理,输出结果到标准输出
-C:告诉预处理器不要丢弃注释.配合`-E‘选项使用.-P:告诉预处理器不要产生`#line'命令.配合`-E'选项使用.
-v:显示正在使用的gcc的版本
常用编译选项
-c:将源程序编译为目标代码但并不做链接的工作,不生成最终的可执行文件,只生成一个与源文件文件名相同的以.o为后缀的目标文件。
-S:将远程序编译为一个后缀为.s的汇编语言文件,不会生成可执行文件
-x:强制编译器用指定的语言编译器来编译某个源文件
gcc-x c++ test.c表示强制用C++编译器来编译c程序
-static:强制连接静态库,运行时不依赖动态库
-share:编译时尽量使用动态库
-o:指定生成的可执行文件名,如果没有该选项,如果生成可执行文件,默认文件名为a.out
编译路径选项
-i:指定特定头文件
gcc–c-i/home/zry/test.h test.c
-I<DIR>:依赖选项,指定头文件路径
Linux下大多数函数将头文件放在/usr/include目录下,如果需要指定其他路径,可以使用该选项
gcc–I/home/zry/include–c test.c添加/home/zry/include到查找路径
-L<DIR>:指定库文件搜素路径,用法同上
-l<库名>:指定特定库文件
gcc–lapp–c test.c
Linux的库文件有一个约定,即以lib开头,-lapp表示连接libapp.so库文件
目标生成选项
-shared:生成动态库
gcc–shared libtest.so-i/home/zry/test.h test.c
生成静态库需要ar命令,后面讲解
-fPIC:生成可用于动态库的位置独立代码。所有的内部寻址均通过全局偏移表完成。
-ansi:支持符合ANSI标准的C程序.
该选项就会关闭GNU C中某些不兼容ANSI C的特性,例如asm, inline和 typeof关键字以及诸如unix和vax这些表明当前系统类型的预定义宏。
__asm__, __extension__, __inline__和__typeof__仍然有效
使用`-ansi'选项的时候,预处理器会预定义一个__STRICT_ANSI__宏.有些头文件关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏不被ANSI标准调用;这样就不会干扰在其他地方使用这些名字的程序了.
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类型设置unsigned char(前两个参数)或者 signed char(后两个参数)
-imacros file:将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中
-Dmacro:相当于C语言中的#define macro
-Dmacro=defn:相当于C语言中的#define macro=defn
-Umacro:相当于C语言中的#undef macro
-undef:取消对任何非标准宏的定义
-M:生成文件关联的信息。包含目标文件所依赖的所有源代码
-MM:和M一样,但是它将忽略由#include<file>造成的依赖关系。
-MD:-M相同,但是输出将导入到.d的文件里面
-MMD:和-MM相同,但是输出将导入到.d的文件里面
警告选项
fsyntax-only:检查程序中的语法错误,但是不产生输出信息.
-w:禁止所有警告信息.
-Wno-import:禁止所有关于#import的警告信息.
-pedantic:打开完全遵从ANSI C标准所需的全部警告诊断;拒绝接受采用了被禁止的语法扩展的程序.
-Werror:将所有警告转换为错误
Werror选项要求GCC将所有警告当作错误进行处理。
-Wall:显示所有警告信息
ubuntu下怎么编程c++
我也正在学习ubuntu系统下的程序设计,以前都是在Windows下的vs中编写,很方便,啥都有,可是转到ubuntu下后两眼一抹黑啥也不情况了,经过一段时间的摸索,还是知道一些的了。和你分享,希望共同进步。
1.首先ubuntu系统自带了C编译器gcc,C++编译器g++,你看下你的系统中有没有安装,如果没有在命令终端(ctrl+T)下输入:sudo apt-get install gcc
就可以安装gcc编译器了。
2.当初我也很纳闷用什么写程序呢,vs中定义好的环境很适合写代码,可ubuntu的用什么的,经查询请教知道,用vim或者emacs,一个叫做神的编辑器,一个叫做编辑器之神,当然都是说这两个编辑器都很厉害,各有所长,就看自己的喜好了,我用的是vim编辑器。
3在终端中输入VIM就能打开vim编辑器,至于vim怎么操作,里面的命令很多,简单的一两句话也说不清楚,建议你找本书好好看看。编写好了一个文件后保存为123.cpp
4一定要保证你的终端是在你保存的文件的目录下,不然每次你输入都要写上全部目录路径。
g++-0 123 123.cpp
意思是将123.cpp这个源文件使用g++编译器编译,编译后的输出是123可执行文件
5在终端下输入123,就能显示你代码的执行结果了。
大致的过程就是这些了,当然具体的过程中可能出现很多问题。要用GDB调试啥的,我还不会,正在学习中。
希望对你有帮助,共同进步。