2010-01-20 36 views
0

我在C++中使用Eclipse。當我運行該程序,我在控制檯窗口中收到以下消息: ****項目磁盤斥力配置調試的構建**** **** 內部生成器是用於構建**** 沒有爲磁盤斥力構建Eclipse C++ - 輸出到窗口DOS

我對程序進行了更改並重新運行,此時我收到以下消息: ****構建配置調試項目磁盤排斥**** ****內部生成器用於生成**** 克++ -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 ms。

當我第一次運行該程序,就開始了我的計劃(我可以看到它在我的窗口任務管理器中運行),但沒有被髮送到控制檯輸出。 在對我的程序進行更改後,程序仍在後臺運行,因此當我嘗試運行該程序時,出現「權限被拒絕」錯誤。通過任務管理器結束實例,我可以使錯誤消失。但是,當我運行該程序時,我仍然看不到任何輸出被髮送到控制檯。 昨天,我能看到我的控制檯中的輸出,但不知道爲什麼我今天看不到它。另外,當我看到我的輸出時,遊標的焦點並沒有從代碼改變到控制檯。我不喜歡手動做。

我也不喜歡,當我修改我的程序,並再次運行它,該程序不會自動終止自身。

我已經使用VC++,我更喜歡窗口Dos輸出。所以,我想知道在Eclipse中是否有將輸出發送到Windows命令提示符的問題,因爲我知道當關閉該程序時,.exe的實例確實沒有了。它會自動獲取光標的焦點。我也將能夠得到一些輸出。

我安裝了MinGW和MaSYS之類的東西來編譯程序。

+0

如何通過在運行程序的eclipse控制檯中按紅色的「終止」按鈕來阻止它從eclipse中停止?此外,該按鈕被禁用意味着程序已退出。 – dbrank0 2012-01-19 07:50:50

回答

0

一個簡單的解決方案,我已經使用了很多年了,現在打開一個命令提示符並手動運行可執行文件。這種方法的一個優點是你可以將你的「DOS」窗口的大小設置爲任何你想要的。 (現在我正在使用帶有8192行回滾緩衝區的120x50窗口。)另一個是你永遠不會失去控制檯輸出;實際上,您將能夠看到過去運行的輸出。 (8192行是A LOT,除非你是printf-調試一個緊密的循環。)

從任務欄終止程序的另一種方法是使用Eclipse「控制檯」窗口右上角的紅色圖標。

1

這聽起來像你的應用程序沒有結束自身和你沒有任何類型的接口,它會讓你殺程序建設。這聽起來像是代碼中的錯誤,而不是Eclipse問題。如果在控制檯中發佈Ctrl + C不會殺死你的程序,那麼可以考慮編寫一些能夠讓你用按鍵或輸入順序殺死你的應用程序的東西。

如果你想在命令控制檯上運行你的應用程序,然後打開一個正常的命令控制檯,瀏覽到包含項目的文件夾,並從控制檯運行的編譯的可執行文件,而不是通過Eclipse界面做的。

0

您的程序的入口點是main()還是WinMain()?對於「子系統」,控制檯或Windows,可能還會有一個設置/鏈接選項,我認爲它們是在Visual Studio中調用的。

無論如何,如果您的程序是通過WinMain啓動的,那麼期望您可以通過某種類型的Windows窗體來控制程序。如果你使用main(),那麼你的程序應該會自動觸發一個控制檯窗口的打開。

如果您有意使用WinMain()並希望控制檯窗口也打開,請在MSDN上查找AllocConsole()(或者谷歌它)。有一些技巧也可以通過谷歌搜索,可以掛鉤標準輸出到這個控制檯,但在這個時候我不記得它是什麼。 (您基本上將stdout句柄重定向到您的新控制檯。)

祝你好運。