在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
linux下gcc编译的四个步骤第⼆步:编译。这⼀步主要检查语法错误。产⽣⼀个后缀.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不添加路径,不能运⾏)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论