用C语言编写的程序,能不能直接在Linux下运行?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-23
在Linux系统中,如何运行一个C语言程序?

1、打开kali linux的终端。创建一个文件并命名为test.c。在终端输入:touch test.c。

2、可以看到已经生成了一个后缀为test.c的源文件。然后用vim工具打开这个文件并编写代码。在终端中输入:vim test.c或者gvim test.c打开这个文件并编写代码。

3、编写完了这个代码。现在开始编译源文件。在终端中输入:gcc test.cgcc是linux自带的c语言编译器。如果是windows则要用ide工具来编译。linux系统一般写C语言用gcc +vim+gdb三个自带的工具就可以了。

4、打完gcc test.c编译完C源文件。然后就可以看见a.out的文件。一般linux系统就默认为a.out为编译完的文件。现在运行a.out文件。在a.out文件的目录下打开终端并输入./a.out就是运行文件了。

5、如果想要编译完的文件名不要用a.out文件。就可以在编译时打入.gcc test.c -o test.out然后就可以看见有一个test.out.文件 了。-o后面跟着的编译生成的文件名。

6、再运行test.out在终端中输入./test.out结果如图。这样在linux系统下编译并运行C语言就完成了。

说实话我觉得楼主你对C的这些基本概念理解还存在着些偏差,首先你问题中所说的话:c语言直接编写出的程序在哪个操作系统可以直接运行?我可以很负责人的告诉你目前没有任何一个操作系统能直接运行C语言。C语言是高级语言,OS必须把它编译成机器语言计算机才能运行,VC之所以大,是因为他是studio,集编辑器、编译器、运行调试bug、UI界面等等于一身的集成式开发环境,VC中编译器最重要,其他都是为了使程序猿更加方便。
至于楼主说的可以直接“运行”C的,我估计是想表达LINUX吧,LINUX王牌GCC,LINUX操作系统中的NC编译器GCC,GUN compiler collection,这是一个纯编译器,可编译 C,C++,java等高级语言,在linux下你可以使用任何第三方编辑器编写你的code,如VI,VIM等,例如你便携test.c然后在shell下用:gcc -o test test.c命令进行编译,编译完成后继续输入./test就运行test这个C程序了。其实gcc标准的编译器在win下也有,但还是建议楼主真心想学linux下的编程的话就去装个linux吧,ubuntu是比较流行的,现在内置gcc了,不用自己在make了。
集成式开发环境是win下比较盛行的方法,在linux下大家还是都喜欢自己便携make等文件进行在shell下运行的编程,但linux下也有款不错的集成开发工具,code::blocks,我一直都是用的这款,比VC好百倍,各种人性化,也不大,方便安装。
所以win下你可以安装code::blocks,想试一下linux下就装下ubuntu,用VIM,VI,EMACS等专业代码编辑器,用SHELL界面运行GCC来编译你的代码,在SHELL下运行,哈哈,整个过程都是很有范儿的敲代码,很有程序员的范儿,还是推荐楼主了解下linux下的编程吧,虽然你可以不选择在这个平台上的编程,但了解下会更有助你掌握编程的理念

有疑问请追问,期待你的追问~

你的问题问得模棱两可的。
按照我的理解有三个意思,1。在windows或mac系统下写的可以正常编译的C源代码,能不能再linux直接编译执行。
2,在windows或mac系统下编译好的C程序可以不可以直接拿到linux下执行。
3.在linux系统下可不可以执行C语言写的程序。
当然应该不可能是地三个意思了。
如果是第二个意思,那么答案是:肯定不能执行。因为C语言是于系统有关的。所以在window下编译的可执行文件,和在linux下是不一样的。
如果是第一个意思。那么就要看情况了。
如果你的源代码完全是使用的标准C写的那么应该是可以的例如写一个hello world程序。
如果你用了window的系统调用。那么就不行了。

需要gcc命令将源代码重新编译,连接,形成二进制文件即可在linux下运行。

linux时用C语言编写的。。。

  • C语言的书写规则主要有哪些呢?
    答:1.4 函数编写应尽可能短小精悍,一般不超过两屏,以便于调试和理解。 1.5语句结构 为保证语句结构的清晰和程序的可读性,在编写软件程序时应注意以下几个方面的问题: ——在一行内只写一条语句,并采用空格、空行和移行保证清楚的视觉效果。 ——每一个嵌套的函数块,使用一个TAB缩进(可以设定为4个空格),大括号必须...
  • 如何用c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一...
    答:Enter a first and last name:Lloyd Fosdick Fosdick,L 程序代码:include<stdio.h>#include<stdlib.h>//定义一个新类型bool#define N 40 int main(void){char name[N],ch;int num=0,i=0;printf("Enter a first and last name:");while((ch=getchar())!='/n'){name[num]=ch;num++...
  • 用c语言编写程序
    答:include<stdlib.h> include<stdio.h> define LIST_INIT_SIZE 100 define LISTINCREMENT 10 typedef struct { int *elem;int length;int listsize;}SqList;void InitList_Sq(SqList *L)//初始化 { L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));//(*L)括号不能少 if(!L->elem){...
  • “已知圆的周长为L,编写C语言程序,计算出他的面积。要求从键盘输入周长...
    答:include<stdio.h> define PI 3.1415926 int main(){ float L;float S=0;printf("Please input circum:");scanf("%f",&L);S=L*L/4.0/PI;printf("Area is:%f\n",S);return 0;}
  • 用C语言. 编写一个文本界面的围棋打谱程序
    答:这是一个简单的程序,会自动计算提子,但不会数目。其它的运行一次估计就差不多会用了。稍微写了点注释。include<stdio.h> include<stdlib.h> char board[21][21];char move[5][2]={{-1,0},{1,0},{0,-1},{0,1},{0,0}};void initBoard();//初始化棋盘 void showBoard();//...
  • 用c语言编写算法:已知顺序表L,编写一个函数实现删除L的倒数第k个结点...
    答:int delete_k(LinkList L,int k,int *e){ int i=0; LinkList p=L; LinkList q=L; while(p || i<k) { p++; i++; } if(!p) return 0; while(p++) q++; LinkList r=q->next; *e=q->data; if(k!=1) { q->data=r-...
  • (c语言)请编写一个程序,要求在屏幕上显示两行文字: l am a student...
    答:include<stdio.h> int main(void){ printf("I am a student\n");printf("I love China\n");return 0;}
  • 如何用c语言编写一个程序,功能是循环对一个网页进行刷新,然后对提示的...
    答://CreateList_L.cpp //To create a LinkList include <stdlib.h> include <iostream.h> include <conio.h> define TRUE 1 define FALSE 0 define OK 1 define ERROR 0 define INFEASIBLE -1 define OVERFLOW -2 typedef struct DuLNode { int data;struct DuLNode *prior;struct DuLNode *...
  • C语言编写的学生管理系统,在c-free里面能通过;不用好复杂100-300行最好...
    答:C语言编写的学生管理系统,在c-free里面能通过;不用好复杂100-300行最好我主要是拿来改的,谢谢 高分,急求!!是“学生成绩管理系统”不好意思少输了2个字... 高分,急求!!是“学生成绩管理系统”不好意思少输了2个字 展开  我来答 3个回答 #热议# 电视剧《王牌部队》有哪些槽点? 林声飘扬 2010-...
  • c语言编写程序,定义一个3行4列的二维整型数组
    答:include <stdio.h>int main(){ int a[3][4]; int l[3]={0},c[4]={0},s=0; int i,j; for(i = 0; i < 3;i++) { for(j = 0; j < 4; j ++) { scanf("%d",&a[i][j]); s+=a[i][j]; l[i]+=a[i][j]; c[j]+=a...