每当我尝试在终端上使用g ++编译c ++代码时,我似乎无法使g ++输出任何错误消息,即使我确定在编译期间应该捕获的错误(例如语法,参考类型......)。
我尝试了几种方法,例如make文件:
all:
g++ -W -Wall -Werror main.cpp
所有这一切都是输出:
make: *** [all] Error 1
哪个没用,显然......
输入以下内容:
g++ -W -Wall -Werror main.cpp
直接到终端(没有make文件)根本不输出任何消息。
但是,这会在编译时成功输出所有错误:
cc main.cpp
我的问题是:如何让g ++输出错误信息,以便我知道在哪里纠正我的代码?
答案 0 :(得分:2)
猜猜 - 您的终端是否可能无法打印stderr
?比如说,它将它移动到日志文件或什么?
尝试运行
g++ [whatever your arguments are] |& cat
(这是你使用tcsh) 或
g++ [whatever] 2>&1 | cat
如果你使用bash。
答案 1 :(得分:0)
尝试这样简单的事情:
g++ -c main.cpp
答案 2 :(得分:0)
当其中一个任务返回非0状态时,使报告出错。如果g ++默默地返回非0 - 那么,我想它以某种方式被破坏了。检查$?在你运行g ++之后。另外,尝试g ++ --version - 它会报告任何内容吗?你也可以在调试器下运行它,只是为了确定。
答案 3 :(得分:0)
尝试添加类似
的行#warning hello from here
(或者#error
代替#warning
)进入main.cc
附近的开头(也许是第一行)。
如果
gcc -Wall -v main.cc
不要提供任何输出(特别是没有警告或错误),这意味着您的gcc
已损坏。也许键入/usr/bin/gcc
而不是gcc
..../configure --program-suffix=-local
]并安装一个较新的GCC(可能来自编译器的released source tar球)。当前版本是4.8.1!