将 g++ 编译器的输出重定向到文件?

Hem*_*ava 2 linux g++ tcsh

我在编译 C++ 程序时看到以下消息。

\n
 test.cpp: In function \xe2\x80\x98int main()\xe2\x80\x99:\n test.cpp:950: error: no match for \xe2\x80\x98operator<<\xe2\x80\x99 in \xe2\x80\x98std::cout << d->Derived::print()\xe2\x80\x99\n /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:108: note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]\n /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:117: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]\n
Run Code Online (Sandbox Code Playgroud)\n

我在想是否可以将所有这些消息重定向到一个文件,并且在控制台上看不到任何内容。我尝试通过以下方式重定向 stderr 消息

\n
g++ test.cpp 2> xx\n
Run Code Online (Sandbox Code Playgroud)\n

但这似乎不起作用。我仍然在控制台上看到所有内容,但文件内什么也没有。

\n

Ted*_*gmo 5

对于cshshell 类型,执行以下操作:

g++ test.cpp >& xx