• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用Shell脚本编译运行C++源码输入输出重定向

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  在写C++控制台程序的时,如果使用Xcode或者Visual Studio之类的IDE,需要创建许多工程,会造成很多不便。有时,采用Vim或者Sublime text等编辑器编写简单的控制台程序能节省许多时间。但是,在编译时,就必使用命令行编译运行。这时,一个事先编写好的shell脚本能大大缩短调试时间。 

  把下面的代码复制并保存为xxx.sh文件,输入要编译的文件名(不包括后缀)和编译选项(可选),即可运行(Linux或者MacOS系统)。

 1 ##/bin/bash
 2 echo "------------------compile.sh------------------"
 3 
 4 name=''
 5 sname=''
 6 option='0'        #0: debug | 1: normal
 7 basepath=$(cd `dirname $0`; pwd)    #获取当前路径
 8 
 9 while [[ true ]]; do
10     #statements
11     read name option        #获取输入
12     if [[ sname == '' && name == '' ]]; then
13         echo "Error: Wrong input"
14         continue
15     fi
16     
17     if [[ -z "$name" ]]; then        #没有输入的时候直接运行
18         echo "------------------runnning------------------"
19         $basepath/$sname.out
20         continue
21     fi
22 
23     sname=$name
24 
25     if [[ option -eq '0' ]]; then
26         echo "------------------compiling------------------"
27         if [[ -f "$basepath/$name.out" ]]; then
28             rm -f "$basepath/$name.out"
29         fi
30         g++ -o $basepath/$sname.out -D debug $basepath/$sname.cpp    #编译选项Debug
31         echo "------------------runnning------------------"
32         time $basepath/$sname.out                      #统计运行时间
33     fi
34     if [[ option -eq '1' ]]; then
35         echo "------------------compiling------------------"
36         if [[ -f "$basepath/$name.out" ]]; then
37             rm -f "$basepath/$name.out"
38         fi
39         g++ -o $basepath/$sname.out $basepath/$sname.cpp
40         echo "------------------runnning------------------"
41         $basepath/$sname.out
42     fi
43 done

  程序在Debug时,不仅可以用#ifdef debug包含各种中间变量的输出,还可以包括输入输出重定向。

#ifdef debug
  freopen("test.in","r",stdin);
  freopen("test.out","w",stdout);
#endif

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
用c++STL实现进程管理发布时间:2022-07-18
下一篇:
C#判别系统版本以及Win10的识别办法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap