在使用CMAKE for visual studio 2015构建之后,我发现有一些构建错误需要我编辑代码。我认为这不应该是必要的,并且想知道我是否可能在构建过程中做错了以使这些错误浮出水面
首先,我必须在文件include / CGAL / auto-link / auto-link.h和cmake / module / CGAL_GeneratorSpecificSettings.cmake中将编译器名称从vc130更正为vc140。我认为这只是因为它没有经过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编译器是向后兼容的,因此它不应该破坏代码来更新编译器。
答案 0 :(得分:2)
与VS2015正式兼容的CGAL的第一个版本将是CGAL 4.7。 似乎新版本的微软在编译它之前接受的有效C ++代码时遇到了一些问题。这就解释了为什么CGAL(或之前版本)的4.6版本对新编译器有一些编译问题。