g ++不输出任何错误

时间:2013-09-26 03:41:43

标签: c++ g++

每当我尝试在终端上使用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 ++输出错误信息,以便我知道在哪里纠正我的代码?

4 个答案:

答案 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

顺便说一句,苹果不喜欢GCC(因为他们不喜欢它的GPLv3 +许可证)。也许值得花时间来构建[使用例如..../configure --program-suffix=-local]并安装一个较新的GCC(可能来自编译器的released source tar球)。当前版本是4.8.1!