在Linux下运转C言语程序

市情上罕见的Linux多是刊行版本,典型的Linux刊行版包括了Linux内核、桌面情况和各类常用的必备工具,国际运用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教程以Deepin为例来讲述若何编译C程序。

Gedit

Gedit是一个复杂适用的文本编纂器,具有美丽的界面,支撑语法高亮,比 Vim 更易上手。本教程将Gedit作为C代码编纂器。
Gedit的装置:

sudo apt-add-repository ppa:ubuntu-on-rails/ppa    //添加ubuntu的软件源
sudo apt-get update    //更新软件列表
sudo apt-get install gedit-gmate    //装置

在以后目次下创立一个C源文件并翻开:

touch test.c
gedit test.c

可以看到gedit的窗口,输出:

			#include<stdio.h> #include<stdlib.h> int main() { printf("Hello,Linux.\n"); exit(0); }


gedit 窗口截图

留意:Gedit支撑多种言语的高亮显示,普通状况下可以主动辨认言语,假如辨认毛病,请在“编纂->高亮形式“下选择C。

GCC

Linux下运用最普遍的C/C++编译器是GCC,大多半的Linux刊行版本都默许装置,不论是开辟人员照样初学者,普通都将GCC作为Linux下首选的编译工具。本教程毫不犹疑地运用GCC来编译C程序。
保管文件前进出,翻开终端并 cd 到以后目次,输出下面的敕令:
    gcc test.c -o test
可以直接将C代码编译链接为可履行文件。
可以看到在以后目次下多出一个文件 test,这就是可履行文件。不像Windows,Linux不以文件后缀来辨别可履行文件,Linux下的可履行文件后缀实际上是可以恣意更改的。
当然,也可以分步编译:
1) 预处置
    gcc -E test.c -o test.i
在以后目次下会多出一个预处置后果文件 test.i,翻开 test.i 可以看到,在 test.c 的根底上把stdio.h和stdlib.h的内容插出来了。
2) 编译为汇编代码
    gcc -S test.i -o test.s
个中-S参数是在编译完成前进出,-o为指定文件名。
3) 汇编为目的文件
    gcc -c test.s -o test.o
.o就是目的文件。目的文件与可履行文件相似,多是机械可以辨认的可履行代码,然则因为还没有链接,构造会稍有分歧。
3) 链接并生成可履行文件
    gcc test.o -o test
假如有多个源文件,可以如许来编译:
    gcc -c test1.c -o test1.o
    gcc -c test2.c -o test2.o
    gcc test1.o test2.o -o test
留意:假如不指定文件名,GCC会生成名为a.out的文件,.out文件只是为了辨别编译后的文件,Linux下并没有规范的可履行文件后缀名,普通可履行文件都没有后缀名。
编译后生成的test文件就是程序了,运转它:
    ./test
假如没有运转权限,可以运用sudo敕令来添加权限(留意要在Linux的分区下):
    sudo cdmod test 777
关于程序的检错,我们可以用-pedantic、-Wall、-Werror选项:

  • -pedantic选项可以协助程序员发现一些不契合 ANSI/ISO C规范的代码(并不是全体);
  • -Wall可以让gcc显示正告信息;
  • -Werror可以让gcc在编译中碰到毛病时中止持续。

这3个选项多是十分有效的。

时间: 2024-10-26 00:52:26

在Linux下运转C言语程序的相关文章

在VS下运转C言语程序

即便读者决议运用VS,不运用C-Free或VC6.0,我依然建议浏览<在C-Free下运转C言语程序><在VC6.0下运转C言语程序>,文中讲到几个主要概念,对初学者大有裨益. 微软后来对VC6.0停止了晋级,并改名为Visual Studio(简称VS),支撑更多的编程言语,愈加弱小的功用,不外 Visual Studio 文件很大,有2~3G阁下,大局部功用初学者临时不会用到:并且装置繁琐,需求快要半个小时的工夫,也不轻易卸载洁净.Visual Studio 还有一个缺陷是占用

在苹果电脑上运转C言语程序

在 Mac OS X 下进修C言语运用 Xcode.Xcode 是由Apple官方开辟的IDE,支撑C.C++.Objective-C.Swift等,可以用来开辟 Mac OS X 和 iOS 上的使用程序.Xcode最后运用GCC作为编译器,后因由于GCC的不合营,改用LLVM.Xcode 的装置十分复杂,在 APP Store 上直接下载即可,这里不再赘述. 在Xcode上运转C言语程序 在 Xcode 上运转C言语程序需求先创立工程,再在工程中添加源代码.1) 翻开 Xcode,选择"Cr

在linux下如何编译C++程序

一.GCC(GNU Compiler Collection)是linux下最主要的编译工具,GCC不仅功能非常强大,结构也异常灵活.它可以通过不同的前端模块来支持各种语言,如Java.Fortran.Pascal.Modula-3和Ada g++是GCC中的一个工具,专门来编译C++语言的. GCC的参数有:( 也是分步实现) -E  让GCC在预处理结束后停止编译  g++ -E hello.cpp  -o  hello.i -c  将hello.i编译成目标代码 g++  -c  hello

Linux 下查看某一个程序所使用的内存方法介绍

Linux 下查看某一个程序所使用的内存方法介绍 在 Linux 上进行开发和运营维护的时候,免不了要查看某一个程序所占用内存的情况.常用方法总结如下(注意第四种方法): 第一种:ps -aux | grep process_name 举例如下:现打算监控/usr/bin/sshd所占的内存,首先需找到pid,然后使用top进行有目标的监控,RES即为内存值,见下两图: top -p 1231,截图如下:    第二种:top -p pid 查看程序的情况 如上图所示! 第三种:cat /pro

Linux下部署Java应用程序

Linux软件安装的特点: 1.Linux中没有注册表的概念,因此要想删除某个软件直接删除软件目录就可以了. 2.软件的安装有些需要Linux软件包的支持,在Linux中使用rpm命令管理软件包. 3.Linux中软件安装的过程很迅速,并且软件的运行速度也很快. 4.Linux中权限管理很严格,因此安装时需要对安装介质进行权限配置. 体验Linux下的Java开发 编译器->字节码->(虚拟机)本地机器码->执行 Linux系统与Windows系统最大的区别: Windows路径分隔是&

不错的linux下通用的java程序启动脚本(转载)

转自:http://www.cnblogs.com/langtianya/p/4164151.html 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的通用shell脚本. 只需要修改一些配置变量,就可以用来做起动脚本了. 并且除了能起动.还支持关闭.重启.查看是否正在运行的功能. 原文地址:http://www.tudaxia.com/archives/10 start函数中,nohup部分其实也

Linux下静态编译Qt程序

一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序,这个程序在发给别人后,他们可以直接打开,而不需要特别地去先安装Qt库,那就需要采用静态编译了. 在Linux下如何静态编译Qt程序呢? 首先需要先安装静态编译的Qt,也就是静态编译Qt程序首先是需要一个静态编译安装的Qt   1.下载源安装程序,如 qt-x11-opensource-src-4.

Windows 远程在Linux下 发布tomcat web程序

Linux虚拟机太卡了,但是我要在Linux下调试程序啊.干脆使用ssh远程登录到我的Linux下,就可以在windows下修改程序,只是发布的时候,发布到linux上就可以了. 一.Linux安装ssh sudo apt-get install ssh 使用securecrt远程登录到Linux 二.linux安装sz.rz sudo apt-get install lrzsz sz---从服务器拿文件   rz--向服务器传文件 三.本地发布出war包,上传到Linux tomcat目录 四

不错的linux下通用的java程序启动脚本

虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的通用shell脚本. 只需要修改一些配置变量,就可以用来做起动脚本了. 并且除了能起动.还支持关闭.重启.查看是否正在运行的功能. 原文地址:http://www.tudaxia.com/archives/10 start函数中,nohup部分其实也可以提出来放入一个配置变量中.这里没有修改直接贴上作者的原文 #!/bin/sh #该脚本为Linux下