2016-12-15 100 views
0

我試圖將GA庫(GALib)添加到我的無錯程序中,當我添加它時,編譯器會返回奇怪的錯誤並重復它們很多次......例如, 「語法錯誤:缺少‘{’前‘<’」被返回以用於下面的模板代碼的第一行:奇怪的編譯器行爲(C++)

template<class _Ty> 
_Check_return_ inline _Ty _Pow_int(_Ty _Xx, int _Yx) _NOEXCEPT 
{ 
unsigned int _Nx; 
if (_Yx >= 0) 
    _Nx = static_cast<unsigned int>(_Yx); 
else 
    _Nx = static_cast<unsigned int>(-_Yx); 

for (_Ty _Zx = static_cast<_Ty>(1); ; _Xx *= _Xx) 
    { 
    if ((_Nx & 1) != 0) 
     _Zx *= _Xx; 
    if ((_Nx >>= 1) == 0) 
     return (_Yx < 0 ? static_cast<_Ty>(1)/_Zx : _Zx); 
    } 
} 

在cmath.h 重複像對同一行中的錯誤的錯誤25次左右。對於其他許多人也是如此。 (提到的錯誤是列表中的第一個) PS。我使用以下順序添加了GA文件: 1-項目屬性> C++>其他包含庫>選擇文件夾 2-將包含標題和源的文件夾拖放到項目解決方案管理器 PPS。所有源文件都帶擴展名.C不是.cpp 我該如何解決這種情況?

+0

@Vality這是標準的庫代碼。 – immibis

+2

@Peet它們應該是C++還是C源文件?可能該庫使用.C(大寫C)表示C++,但由於Windows不區分大小寫,因此它將.C同.c表示爲C. – immibis

+0

@immibis我在寫這個問題的時候正在考慮這個問題,所以我回去了到GA庫的文檔,並發現: 「將開發環境設置爲在C文件上使用C++編譯器(這是MS Visual C++中的/ TP標誌)在Visual C++中啓用RTTI」 確定如何做到這一點,雖然...仍在搜索 – Peet

回答

0

以下過程在此頁面:msdn.microsoft.com/en-us/library/032xwy55.aspx大多數錯誤只是消失(包括提到的一個)。

主要問題是編譯器處理帶默認選項的.C文件,我改變爲C++,如上述頁面中提到的那樣。