【发布时间】:2011-07-06 10:35:33
【问题描述】:
我在学校安装了 DevC++,所以我可以编译 C 应用程序,但每次我尝试编译时都会收到错误,读取命令提示符被系统管理员禁用。
我该如何编译?
编译器是 MinGW。
【问题讨论】:
-
您得到的确切错误信息是什么?
-
系统管理员已禁用命令提示符。
标签: c windows windows-xp mingw sysadmin
我在学校安装了 DevC++,所以我可以编译 C 应用程序,但每次我尝试编译时都会收到错误,读取命令提示符被系统管理员禁用。
我该如何编译?
编译器是 MinGW。
【问题讨论】:
标签: c windows windows-xp mingw sysadmin
与负责学校计算机的人员交谈,并告诉他/她您想学习编程,因此需要访问命令提示符。有一个可用的 CLI 总是一件好事。坦率地说:禁用对命令行的访问?怎么回事?!那根本就没有安全感。
【讨论】:
我在学校也遇到了同样的问题。我使用一个从控制台读取文本并将其用作 system() 的参数(在 C++ 中)的小程序解决了它。它对我来说效果很好,虽然当前工作目录等没有保存在命令之间,但是可以使用&& 连接命令并立即执行它们来解决。以防万一你的老师不让你访问 cmd...
【讨论】:
这听起来像是非常严格的限制。如果不重新启用命令提示符,我不知道有什么好方法。您确定它正在编译需要命令提示符吗?我认为它会运行需要它的应用程序,如果有的话。
但是,在您尝试这样的事情之前,最好尝试安装 Code::Blocks 并改用它。 C::B 比 DevC++ 更现代,并且可能不需要此权限来编译和运行不需要控制台窗口的应用程序。作为奖励,我很确定 C::B 与 DevC++ 项目文件和 devpaks 兼容。
作为一种额外的解决方案,如果您使用的是 Windows XP 系统,大多数情况下,一些简单的注册表修改可以重新启用这些功能。即使禁用了 regedit,您仍然可以直接使用 API 编辑注册表;互联网上可能有用于此目的的工具。
【讨论】:
我会尝试以下解决方法:创建一个包含内容的批处理文件(扩展名为 .bat):
set path=%path%;c:\myfolder\mingw\bin
gcc hello.c >out.txt
start out.txt
使用命令提示符不是很舒服,因为您通常希望在启动编译器之前设置一些环境变量。当你有一个批处理文件时,你只需双击它。您也可以在末尾添加pause。
【讨论】: