1、gcc 和 g++ 使用基础
在学习gcc/g++
前我们得弄明白一些问题:
gcc 和 g++ 的差别在哪里?有什么我们错误的认为?
那我们怎么对比它们的差别呢,我们可以使用代码进行比较,下面我们会用
命令进行比较
错误认为:gcc 只能编译 .c 文件,g++自能编译.cpp文件
1.1 gcc运用
win+R
打开cmd窗口,输入gcc
命令确定配置环境变量
成功,如果没有配备可以参考我的之前的一篇文章
使用的编辑器为:DevC++
gcc版本:TDM-GCC 4.9.2 64-bit
1.1.1 gcc编译.c文件
我们创建一个名为 Demo.c
的文件,我打算将其放置在D:\code
下,编辑如下代码:
#include<stdio.h>
int main() {
printf("hello world");
return 0;
}
为正确编译 Demo.c
文件,在cmd窗口,使用Dos命令跳转到目录D:\code
下,使用dir
确定是否存在Demo.c
文件
常用的Dos命令如下:
DOS命令 | 详细的作用 |
---|---|
cd | 跳转到某一目录 用法:cd 路径 |
cd .. | 返回上一层目录 |
dir | 列出当前目录下的所有文件 |
help | 获取Dos命令及其含义 |
磁盘 : | 跳转到指定的磁盘 举例:D: 即跳转到D盘 |
在文件所在目录下输入命令:
D:\code>
gcc Demo.c
若无任何的提示信息,且在D:\code
下生成一个a.exe
,说明Demo.c编译成功
运行该程序
D:\code>
a.exe
hello world
该结果与我们程序的输出一致
1.1.2 gcc编译.cpp文件
我们创建一个名为 Demo2.cpp
的文件,我打算将其放置在D:\code
下,编辑如下代码:
#include<iostream>
using namespace std;
int main() {
cout<<"hello world C++";
return 0;
}
在文件所在目录下输入命令:
D:\code>
gcc Demo2.cpp -lstdc++
若无任何的提示信息,且在D:\code
下生成一个a.exe
,说明Demo2.cpp编译成功
运行该程序
D:\code>
a.exe
hello world C++
这里说明gcc
不仅可以编译.c
,还可以编译.cpp
细心的读者可能会发现一个问题!!我们编译的无论是说明文件,最终都会生成一个 a.exe
程序。那么问题来了,如果在编译Demo2.cpp
文件后我想要运行Demo.c
编译成功的文件会怎么样?由于同名,我们运行a.exe
文件输出的必定是后一个编译的文件的输出的值,之前的a.exe
会被替代掉,所以我们接下来要解决的是
使得编译文件后生成的不是同名的
.exe
文件
解决方法:编译文件后生成的程序与编译文件同名
D:\code>
gcc Demo.c -o Demo
D:\code>gcc Demo2.cpp -o Demo2 -lstdc++
编译成功后即可在目录下看到Demo.exe 和 Demo2.exe
g++的我就不讲解了,和gcc一样,但是g++本身就可以完全编译
.c
和.cpp
文件,这个可以由读者自己动手