我正在尝试让 Eclipse CDT(64 位 eclipse)在带有 GCC 的 Windows 7 上工作。当我第一次让 GDB 工作时(这本身就是一个挑战),在调试模式下运行程序是我获得输出的唯一方法。正常运行它不会给出任何控制台输出。经过几个小时的谷歌搜索,我发现如果我将 C:/cygwin/bin 添加到 eclipse 中的环境路径中,我可以在正常运行程序时得到输出。然后我在调试模式下运行它,没有任何输出。我对此进行了几次测试,以确保是添加的路径导致了问题。这是我正在运行的程序,
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
那么我怎样才能让正常模式和调试模式同时工作,为什么我必须首先包含该路径(它已经在我的 cygwin 路径中,为什么 CDT 需要它?)?另外,为什么如果我向运行配置添加路径,它也会添加到我的调试配置中?
From 维基日食:
在 Windows 上的 Eclipse CDT 中,正在运行或调试的程序的标准输出是完全缓冲的,因为它没有连接到 Windows 控制台,而是连接到管道。看错误 173732更多细节。要么在每个 printf 之后添加刷新调用,要么在主函数的开头添加以下行:
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)