【问题标题】:Eclipse C++ - output to window DOSEclipse C++ - 输出到窗口 DOS
【发布时间】:2012-01-19 15:01:08
【问题描述】:

我正在使用带有 C++ 的 Eclipse。当我运行程序时,我在控制台窗口中收到以下消息: **** 构建项目磁盘排斥的配置调试 **** **** 内部构建器用于构建 **** 没有什么可以构建磁盘排斥

我对程序进行了更改并再次运行它,这次我收到以下消息: **** 构建项目磁盘排斥的配置调试 **** **** 内部构建器用于构建 **** g++ -oDisksRepulsion.exe DisksRepulsion.o -lopengl32 -lglu32 -lglut32 C:\MinGW\bin..\lib\gcc\mingw32\3.4.5........\mingw32\bin\ld.exe:无法打开输出文件DisksRepulsion.exe:权限被拒绝 collect2: ld 返回 1 个退出状态 发生构建错误,构建已停止 耗时:103 毫秒。

当我第一次运行该程序时,它启动了我的程序(我可以看到它在我的窗口任务管理器中运行),但没有输出发送到控制台。 对我的程序进行更改后,该程序仍在后台运行,因此当我尝试运行该程序时出现“权限被拒绝”错误。我可以通过任务管理器结束实例来消除错误。但是,当我运行程序时,我仍然看不到任何输出被发送到控制台。 昨天,我能够在控制台中看到输出,但不知道为什么我今天看不到它。此外,当我看到我的输出时,光标的焦点并没有从代码变为控制台。我不喜欢手动操作。

我也不喜欢当我对程序进行更改并再次运行它时,程序不会自行自动终止。

我使用过 VC++,我更喜欢使用 Dos 窗口进行输出。所以,我想知道 Eclipse 中是否有将输出发送到 Windows 命令提示符的方法,因为我知道当我关闭程序时 .exe 的实例真的消失了。它会自动获得光标的焦点。我也将能够得到一些输出。

我用 MaSYS 之类的安装了 MinGW,来编译程序。

【问题讨论】:

  • 如何通过在运行程序的 Eclipse 控制台中按红色“终止”按钮从 Eclipse 中停止它?此外,该按钮被禁用意味着程序已退出。

标签: c++ eclipse


【解决方案1】:

听起来您的应用程序并没有自行终止,并且您没有构建任何可以让您终止程序的接口。这听起来像是代码中的错误,而不是 Eclipse 问题。如果在控制台中发出 Ctrl+C 不会杀死您的程序,那么请考虑编写一些可以让您通过击键或输入序列杀死您的应用程序的代码。

如果您想在命令控制台中运行您的应用程序,请打开一个普通命令控制台,浏览到包含您的项目的文件夹,然后从控制台运行编译后的可执行文件,而不是通过 Eclipse 界面执行。

【讨论】:

    【解决方案2】:

    我已经使用多年的一个简单解决方案是自己打开命令提示符并手动运行可执行文件。这种方法的一个优点是您可以将“DOS”窗口的大小设置为您想要的任何大小。 (现在我正在使用一个 120x50 的窗口和 8192 行的回滚缓冲区。)另一个是你永远不会丢失你的控制台输出。事实上,您将能够看到过去运行的输出。 (除非您正在 printf 调试一个紧密的循环,否则 8192 行很多。)

    从任务栏终止程序的另一种方法是使用 Eclipse“控制台”窗口右上角的红色图标。

    【讨论】:

      【解决方案3】:

      您的程序的入口点是 main() 还是 WinMain()? “子系统”、控制台或 Windows 也可能有一个设置/链接选项,我认为它们在 Visual Studio 中被调用。

      无论如何,如果您的程序是通过 WinMain 启动的,那么您的期望是您将拥有某种 Windows 形式,用户可以通过该形式控制程序。如果您使用 main(),那么您的程序应该会自动触发控制台窗口的打开。

      如果您有意使用 WinMain() 并希望控制台窗口也打开,请在 MSDN(或谷歌搜索)上查找 AllocConsole()。谷歌搜索也有一些技巧可以将标准输出连接到这个控制台,但目前我不记得它是什么。 (您基本上将标准输出句柄重定向到您的新控制台。)

      祝你好运。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-12
        • 1970-01-01
        • 2017-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多