在刚开始学Java时用命令行进行编译代码。而C++一直在用IDE, 这次尝试下命令行编译。vs下也可以用cl.exelink.exe等命令来进行编译

但这次是通过安装MinGW来学习命令编译,主要用到g++。

(1)g++简介

通过下面命令可查看g++版本

g++ -v

结果如下:

也可以通过g++ --help 查看更多的可用命令。


(2)编译单个文件

编写单个文件的可执行程序代码hello.cpp如下

 #include <iostream>
using namespace std; int main(){
cout << "Hello World!" << endl;
}

用cmd打开该文件所在的相应文件夹,并输入:g++ hello.cpp

默认情况下,在该文件夹中将产生:a.exe, 此时在cmd中输入a,就可以看到输出结果。

我们也可以自定义产生的可执行程序名,如test.exe, 我们只要输入:g++ hello.cpp  -o test

然后就得到test.exe文件,在cmd中输入test就能够得到结果,实验结果如下:


(3)编译多个文件

定义头文件header.h, 头文件包含3个函数声明:

int fact(int n);
int static_val();
int mabs(int);

定义函数定义文件func.cpp

#include "header.h"

int fact(int n)
{
int ret = ;
while(n > )
ret *= n--;
return ret;
} int static_val()
{
static int count = ;
return ++count; } int mabs(int n)
{
return (n > ) ? n : -n;
}

定义主函数文件main.cpp

#include <iostream>
#include "header.h"
using namespace std; int main()
{
int j = fact();
cout << "5! is " << j << endl;
for(int i=; i<=; ++i)
{
cout << static_val() << " ";
}
cout << endl;
cout << "mabs(-8) is " << mabs(-) << endl;
return ;
}

在同一个文件夹下编辑header.hfunc.cppmain.cpp后,就可以进行多个文件编译,注意到在命令行编译中似乎没有头文件什么事,

头文件只是起到声明的作用,因此只需编译两个*.cpp文件并链接就可以。

输入下面两行分别编译两个文件:

g++ -c func.cpp
g++ -c main.cpp

上面编译完成后生成两个文件:func.omain.o

之后通过链接就可以得到最终的可执行程序,输入下面命令:

g++ main.o func.o -o test

最终产生可执行程序test.exe, 可以直接在cmd中输入验证,结果如下:


ps: 似乎总在重复学习简单的东西,希望系统学习复习整理后,能够往前一步,学习更有趣、更高深的内容。

最新文章

  1. “Ceph浅析”系列之七——关于Ceph的若干想法
  2. VS2010 项目引用了微软企业库,但是编译时提示:未能找到类型或命名空间名称
  3. JavaScript语言知识收藏
  4. Web前端性能优化之图片优化
  5. 转:浅谈C/C++中的指针和数组(一)
  6. MVC4.0 使用Form认证,自定义登录页面路径Account/Login
  7. Move to Another Changelist
  8. iOS设备、Icon、LaunchImage、图片分辨率
  9. 在查询用户的权限的时候 使用左外连接 和 access数据库中左外连接
  10. ZJUT 1423 地下迷宫(期望DP&amp;高斯消元)
  11. 窗体的Alpha通道透明色支持(一旦 Form 被定义为利用 LayeredWindow ,窗口的绘图不再响应沿用多年的 WM_Paint 消息)
  12. The APR based Apache Tomcat Native library tomcat启动错误
  13. logstash安装配置
  14. h5页面适配小结
  15. 快速安装 Laravel 5.7
  16. ECMAScript6 入门 变量的解析赋值
  17. 如何快速学好Shell脚本? 转
  18. M1/M2总结
  19. CF28D Don&#39;t fear, DravDe is kind
  20. 为什么今天的L4无人驾驶无法到达终局(转)

热门文章

  1. NX二次开发-UFUN获取点在面上U,V方向的位置UF_MODL_ask_face_parm【转载】
  2. Oracle sql判断一个字段是否全数字 或含有中文
  3. C#-Api:身份证识别
  4. ASP.NET MVC Controller激活系统详解2
  5. 剑指offer——04从尾到头打印链表
  6. 一个很SB的方法,来开始调一个刚启动就SB的程序
  7. scrapy 多个爬虫运行
  8. myeclipse问题
  9. VBA当中的时间日期函数
  10. Ubuntu升级软件和ubuntu升级系统的命令