在Linux中使用终端编译并运行.c和.cpp文件

首先要保证系统中安装了C语言和C++对应的编译器:gcc -> C  ,g++ -> C++

1、.c文件的编译与运行

(1).c文件hello.c代码如下:

  1. #include<stdio.h>

  2. int main()

  3. {

  4. printf("Hello world !\n");

  5. return 0;

  6. }

在当前路径下编译.c文件:

gcc -o hello hello.c

编译完成后可以看到在和hello.c相同目录下有一个hello的可执行文件。

在当前路径下运行编译后的可执行文件:

./hello

(注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行)

(2)gcc指令举例

gcc hello.c         会默认生成一个a.out的可执行文件

gcc hello.c -o     会产生一个 hello 可执行文件

gcc hello.c -o myhello    会产生一个 myhello 可执行文件

(3)gcc的详细过程

详细过程可以分为四步:可以手动进行这四个步骤:

第一步:预处理。#号开头的代码全被解决掉(预编译,包含库,宏定义等等),产生一个后缀.i的文件以便下一步使用。

                gcc -E hello.c    (不会产生.i文件,文件内内容打印在了终端,所以需要将这些信息重定向到.i文件)

                gcc -E hello.c >> hello.i

第二步:编译。这一步主要检查语法错误。产生一个后缀.s的文件(汇编文件)

                gcc -S hello.i     (大写字母S)

第三步:汇编。产生后缀.o的object目标文件,二进制,但不可以运行,因为缺少库信息

                gcc -c hello.s

第四步:链接。添加库信息,产生一个后缀.o的可执行文件

                gcc hello.o -o hello

2、.cpp文件的编译与运行

.cpp文件hello.cpp代码如下:

  1. #include<iostream>

  2. using namespace std;

  3. int main()

  4. {

  5. cout << "Hello world !" << endl;

  6. return 0;

  7. }

在当前路径下编译.cpp文件:

g++ -o hello hello.cpp

编译完成后可以看到在和hello.cpp相同目录下有一个hello的可执行文件。

在当前路径下运行编译后的可执行文件:

./hello

(注意一定要加上路径才能运行,点表示当前路径。直接hello不添加路径,不能运行)

猜你喜欢

转载自blog.csdn.net/choupiaoyi2794/article/details/81199243