【问题标题】:Compiling with MinGW without administrator privileges or access to the command line在没有管理员权限或访问命令行的情况下使用 MinGW 进行编译
【发布时间】:2011-07-06 10:35:33
【问题描述】:

我在学校安装了 DevC++,所以我可以编译 C 应用程序,但每次我尝试编译时都会收到错误,读取命令提示符被系统管理员禁用。

我该如何编译?

编译器是 MinGW。

【问题讨论】:

  • 您得到的确切错误信息是什么?
  • 系统管理员已禁用命令提示符。

标签: c windows windows-xp mingw sysadmin


【解决方案1】:

与负责学校计算机的人员交谈,并告诉他/她您想学习编程,因此需要访问命令提示符。有一个可用的 CLI 总是一件好事。坦率地说:禁用对命令行的访问?怎么回事?!那根本就没有安全感。

【讨论】:

  • 好主意,我下节课问老师。他有权访问系统管理员的帐户。
【解决方案2】:

我在学校也遇到了同样的问题。我使用一个从控制台读取文本并将其用作 system() 的参数(在 C++ 中)的小程序解决了它。它对我来说效果很好,虽然当前工作目录等没有保存在命令之间,但是可以使用&& 连接命令并立即执行它们来解决。以防万一你的老师不让你访问 cmd...

【讨论】:

  • 向它添加一个 GUI,它允许您以交互方式工作,并且您拥有一个足够简单的 shell。您的回答是,为什么我在回答中提到禁用机器上的命令提示符,人们应该在机器上开发程序(为了他们的教育)是没有意义的。
【解决方案3】:

这听起来像是非常严格的限制。如果不重新启用命令提示符,我不知道有什么好方法。您确定它正在编译需要命令提示符吗?我认为它会运行需要它的应用程序,如果有的话。

但是,在您尝试这样的事情之前,最好尝试安装 Code::Blocks 并改用它。 C::B 比 DevC++ 更现代,并且可能不需要此权限来编译和运行不需要控制台窗口的应用程序。作为奖励,我很确定 C::B 与 DevC++ 项目文件和 devpaks 兼容。

作为一种额外的解决方案,如果您使用的是 Windows XP 系统,大多数情况下,一些简单的注册表修改可以重新启用这些功能。即使禁用了 regedit,您仍然可以直接使用 API 编辑注册表;互联网上可能有用于此目的的工具。

【讨论】:

  • 对于最后一个解决方案,我做了一个快速的谷歌搜索并想出了这个,它看起来非常有用:windowsxp.mvps.org/disablecmd.htm - 它涉及恶意软件,但它应该同样适用于故意限制。
  • 在学校修改系统设置可能会导致禁令和大量惩罚:)
  • @Radek S:虽然这是真的,但可能性很小。如果它很重要,学校将首先投入更多资金来保护软件。大多数学校完全没有注意到实际威胁(这就是 USB 驱动器病毒在学校盛行的原因。)
【解决方案4】:

我会尝试以下解决方法:创建一个包含内容的批处理文件(扩展名为 .bat):

set path=%path%;c:\myfolder\mingw\bin
gcc hello.c >out.txt
start out.txt

使用命令提示符不是很舒服,因为您通常希望在启动编译器之前设置一些环境变量。当你有一个批处理文件时,你只需双击它。您也可以在末尾添加pause

【讨论】:

    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2014-03-19
    相关资源
    最近更新 更多