Eclipse C ++ - 输出到窗口DOS

时间:2010-01-20 01:50:30

标签: c++ eclipse

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

我对程序进行了更改并再次运行,这次我得到以下消息: ****构建配置调试项目磁盘排斥**** ****内部构建器用于构建**** 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毫秒。

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

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

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

我用MaSYS或其他东西安装了MinGW来编译程序。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

如果您有意使用WinMain()并希望控制台窗口也打开,请在MSDN(或谷歌)上查找AllocConsole()。还有一些技巧可以通过谷歌搜索,可以将stdout挂钩到这个控制台,但此时我不记得它是什么。 (您基本上将stdout句柄重定向到新控制台。)

祝你好运。