+ -
当前位置:首页 → 问答吧 → 小弟跪求gcc高手帮忙解答问题

小弟跪求gcc高手帮忙解答问题

时间:2011-11-28

来源:互联网

小弟最近在用写一个学生作业批改系统,遇到一个棘手的问题,
我想在DOS环境下用gcc编译一个.c文件,可是DOS环境下用msys.bat无法实现
msys.bat就是我的gcc编译器,求解,求解

作者: zhang5360037   发布时间: 2011-11-28

gcc -o object sourse

作者: ximenwuji   发布时间: 2011-11-28

不知你的msys.bat是什么,minSys环境?
DOS下gcc有多个
纯DOS的DJGPP
windows DOS下Cygwin gcc
windows DOS下mingw gcc(dev-cpp,minsys,codeblock,c-free等支持)
要编译文件的话可通过命令行的
gcc -o xxx xxx.c
当然,dev-cpp,codeblock,c-free都有窗口(IDE)方式的

作者: keiy   发布时间: 2011-11-28

msys是bash环境
你要有mingw gcc编译器

作者: xunxun1982   发布时间: 2011-11-28

引用 1 楼 ximenwuji 的回复:
gcc -o object sourse


sp.......

作者: skyworth98   发布时间: 2011-11-28

建议整个虚拟机,或者双系统,这样的话,缺了很多库文件的话可以很快下载,工欲善其事,必先利其器

作者: flyskylover   发布时间: 2011-11-28

嗯~msys.bat文件的内容是:
@echo off@bin\rxvt -tn msys -sl 3000 -fn Fixedsys -fg white -bg black -sr -e bin/bash.exe --login -i
我的意思是如何用C语言实现调用msys.bat文件并实现输入重定向到一个文本文件?
首先是msys.bat文件无法用C语言实现运行,经测试这几种写法都无法实现打开msys.bat的功能:
C/C++ code
system("e:\\gcc\\msys.bat");                        //错误提示:系统找不到指定的路径 

    system("start e:\\gcc\\msys.bat");                    //错误提示:系统找不到指定的路径
    
    system("e:");            
    system("cd e:\\oj\\gcc");
    system("msys.bat");                                    //错误提示:windows找不到文件msys.bat 

    system("e:\ncd e:\\oj\\gcc\nstart msys.bat\n");        //这句话跟没有一样

最后的解决办法是把批处理用记事本打开,然后把内容改吧改吧塞进system()里,可算能打开了。
C/C++ code
system("start e:\\oj\\gcc\\bin\\rxvt -tn msys -sl 3000 -fn Fixedsys -fg white -bg black -sr -e e:\\oj\\gcc\\bin\\bash.exe --login -i");

然后看输入重定向,这个批处理前面打开的rxvt.exe会闪过一个黑框并且开一个新窗口,再加载bash.exe,以及进行一些我也没看懂的处理之后成为了GCC编译器,而开新窗口的操作,使得这样的语句无效:
C/C++ code
system("start e:\\oj\\gcc\\bin\\rxvt -tn msys -sl 3000 -fn Fixedsys -fg white -bg black -sr -e e:\\oj\\gcc\\bin\\bash.exe --login -i 0<E:\\i.txt");

那该怎么办……实在想不出法子来。

作者: zhang5360037   发布时间: 2011-11-28

上面代码有的前后路径不一样,但是这两个路径下都有一份GCC编译器的~

作者: zhang5360037   发布时间: 2011-11-28