使用Visual Studio 2015的CMAKE構建後,我發現有一些構建錯誤需要我編輯代碼。我覺得這不應該是必要的,並想知道如果我可能在構建過程中做了一些錯誤,以使這些錯誤表面使用VS2015構建CGAL的過程
首先,我必須將文件include/CGAL中的編譯器名稱從vc130更正爲vc140 /auto-link/auto-link.h和cmake/module/CGAL_GeneratorSpecificSettings.cmake。我認爲這僅僅是因爲它沒有被測試VS2015,並且有人認爲vc130會跟隨vc120。
我碰到的另一個問題是八個函數沒有編譯。這些是函數
Segment_2<R_>::min
Segment_2<R_>::max
Segment_2<R_>::vertex
Segment_2<R_>::point
Segment_2<R_>::operator[]
Segment_3<R_>::min
Segment_3<R_>::max
這個問題似乎是實現的類型簽名不符合聲明的類型簽名。我試圖修復類型簽名,但無法使其完全匹配。爲了解決這個問題,我最終將這些函數的實現移到了聲明中。我想爲什麼這顯然是必要的,因爲它可能是爲其他人編寫的。 Sloriot評論說,這是因爲VS2015編譯器比CGAL測試的更新。不過,我的理解是,visual studio編譯器是向後兼容的,因此它不應該破壞代碼來更新編譯器。
「視覺工作室編譯器向後兼容」:顯然不完全。他們修復錯誤,引入新的錯誤等。 –