我开始使用 cgal,我刚刚下载了一些示例代码开始练习。问题是当我尝试编译代码时,它返回:
ConvexHull.cpp:275:40: error: expected expression
sort(points.begin(), points.end(), [p] (Point_2 a, Point_2 b) -> int {
^
1 error generated.
make[2]: *** [CMakeFiles/exec.e.dir/ConvexHull.cpp.o] Error 1
make[1]: *** [CMakeFiles/exec.e.dir/all] Error 2
make: *** [all] Error 2
当我查看代码时,一切似乎都很好:
Point_2 p = *(polygon.bottom_vertex());
sort(points.begin(), points.end(), [p] (Point_2 a, Point_2 b) -> int {
Vector_2 v1(a, p);
Vector_2 v2(b, p);
return v1.direction() <= v2.direction();
});
这真的错了吗?我是否使用了错误的编译器(默认使用Clang 3.1.0
)?我错过了什么吗?
任何帮助是极大的赞赏
顺便说一句:我正在使用 OSX Lion 进行开发,我唯一安装的是 cgal(使用自制软件)及其依赖项。要编译我运行:
cd path/to/folder
cgal_create_CMakeLists -c Qt4:Core:GMP:MPFR:Boost -s exec.e
cmake -DCGAL_DIR=$HOME/CGAL-4.2 -DCMAKE_BUILD_TYPE=Debug
make
编辑
我设法使用自制软件安装了 gcc-4.8 和 g++-4.8。比我像这样运行 cmake 命令:
cmake -DCGAL_DIR=$HOME/CGAL-4.2 -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_CC_COMPILER=gcc-4.8
甚至不需要指定c++11
标志。它生成了可执行文件,但是当我使用./exec.e
它运行它时 segfaults Segmentation fault: 11
。我对这变得多么困难感到非常沮丧。
编辑 2
我放弃了使用 MacOS。我能够CGAL
使用GCC-4.7
.