如何在Linux或UNIX中编译C程序

时间:2020-01-09 10:41:35  来源:igfitidea点击:

在Linux下,我编写了一个名为test.c的小程序。
使用Fedora Linux时如何在Linux中编译并查看C程序的输出?
在Linux下,您需要使用cc/gcc(GNU项目C和C ++编译器)命令来编译用C或C ++编写的程序。
编译程序时,它将生成一个称为a.out的可执行文件。

语法

语法为:

gcc -o output-file program.c

或者

cc -o output-file program.c

或者

make program.c

例子代码

这是一个名为test.c的示例C代码,我将使用GNU C编译器进行编译:

/* Purpose: A simple program to get name and information about current kernel
* using uname(2) on a Linux.
* Author:  <https://www.theitroad.local>
*/
#include <sys/utsname.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/utsname.h>
 
int main(void){
	int i;
	struct utsname myname;
	i = uname(&myname); /* hold the structure */
	if ( i == 0 ){
		printf("Operating system name : %s\n",myname.sysname);
		printf("Node name : %s\n",myname.nodename);
		printf("Operating system release : %s\n",myname.release);
		printf("Operating system name : %s\n",myname.version);
		printf("Hardware identifier : %s\n",myname.machine);
	}
	else {
		 fprintf(stderr,"Oh no. uname(2) failed with %s\n", strerror(errno));
		 exit(1);
	}
	return 0;
}

编译程序

要编译,请输入以下命令:

$ gcc test.c

或者

$ cc test.c

执行程序以查看输出

上面的命令将创建一个名为a.out的文件。
要查看test.c程序类型的输出,请执行以下操作:

$ ./a.out

编译为特定的可执行文件

您可以在编译程序本身时指定可执行文件名:

$ gcc -o test test.c

或者

$ cc test.c -o test

或者

$ make test

现在执行测试程序以在屏幕上查看test.c的输出:

$ ./test