Visual C++ 5.0 好像是用 /GR选项,但是在Visual Studio 2005版下编译,侯捷的RTTI.CPP就会产生一堆下面错误的讯息:
RTTI.CPP
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(326) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(341) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(358) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(1075) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(520) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(512) : 编译类别 样板 成员函式 ‘std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::put(_Elem)’ 时
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(971) : 请参阅所要编译的类别 样板 具现化 ‘std::basic_ostream<_Elem,_Traits>’ 的参考
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(520) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(512) : 编译类别 样板 成员函式 ‘std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::put(_Elem)’ 时
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(980) : 请参阅所要编译的类别 样板 具现化 ‘std::basic_ostream<_Elem,_Traits>’ 的参考
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(102) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(92) : 编译类别 样板 成员函式 ‘bool std::basic_istream<_Elem,_Traits>::_Ipfx(bool)’ 时
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(1065) : 请参阅所要编译的类别 样板 具现化 ‘std::basic_istream<_Elem,_Traits>’ 的参考
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(102) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(92) : 编译类别 样板 成员函式 ‘bool std::basic_istream<_Elem,_Traits>::_Ipfx(bool)’ 时
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\istream(1100) : 请参阅所要编译的类别 样板 具现化 ‘std::basic_istream<_Elem,_Traits>’ 的参考
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(144) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(143) : 编译类别 样板 成员函式 ‘void std::basic_ostream<_Elem,_Traits>::_Osfx(void)’ 时
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(144) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(143) : 编译类别 样板 成员函式 ‘void std::basic_ostream<_Elem,_Traits>::_Osfx(void)’ 时
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xstring(2009) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xstring(2000) : 编译类别 样板 成员函式 ‘void std::basic_string<_Elem,_Traits,_Ax>::_Copy(unsigned int,unsigned int)’ 时
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdexcept(48) : 请参阅所要编译的类别 样板 具现化 ‘std::basic_string<_Elem,_Traits,_Ax>’ 的参考
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Ax=std::allocator<char>
]
C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\ostream(757) : warning C4530: 已使用 C++ 例外处理常式,但没有启用回溯语意 (Unwind Semantics)。请指定 /EHsc
RTTI.CPP(19) : 请参阅所要编译的函式 样板 具现化 ‘std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)’ 的参考
with
[
_Elem=char,
_Traits=std::char_traits<char>
]
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
/out:RTTI.exe
RTTI.obj
很明显的它叫我们改用/EHsc选项。
但是如果你查Google时,你会发现/GX选项是跟/EHsc选项是一样的,但是我编译时会有这样的警告:
cl : 命令列 warning D9035 : 选项 ‘GX’ 已被取代,在未来的发行版本中将会移除
cl : 命令列 warning D9036 : 请用 ‘EHsc’ 代替 ‘GX’
表示/GX选项是Visual C++ 5.0以后,2005以前版本在使用的!