首頁 / CompScience / Programming / Languages / C_and_CPP / C++ RTTI 的編譯選項

C++ RTTI 的編譯選項

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以前版本在使用的!

馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

Scroll To Top

 好吃、好玩、旅遊、試吃、試用、邀稿、SEO

歡迎洽詢:flylinux@gmail.com

➨ 國外美食旅遊  日本東京自由行  美國猶他加州自由行  韓國釜山首爾慶州自由行 │ 泰國馬來西亞新加坡自由行  澳門廣東香港自由行日本九州奈良京阪自由行 │澳洲墨爾本坎培拉雪梨自由行 │中國北京自由行 

紅屋頂加級大阪難波飯店 (Red Roof Plus Osaka Namba) 日本大阪紅屋頂加級大阪難波飯店 (Red Roof Plus Osaka Namba)激推