c++ - compile a simple test with CGAL -


i have installed cgal brew on mac system. i'm exciting try simple , minimal example. ho can compile g++?

i want compile sample file with:

gcc namefile.cpp -lcgal -i/usr/local/include/cgal 

and lot of errors... (too many paste here think)

as example file i'm using

file: examples/arrangement_on_surface_2/sweep_line.cpp    #include <cgal/cartesian.h> #include <cgal/mp_float.h> #include <cgal/quotient.h> #include <cgal/arr_segment_traits_2.h> #include <cgal/sweep_line_2_algorithms.h> #include <list>  typedef cgal::quotient<cgal::mp_float>                  nt; typedef cgal::cartesian<nt>                             kernel; typedef kernel::point_2                                 point_2; typedef cgal::arr_segment_traits_2<kernel>              traits_2; typedef traits_2::curve_2                               segment_2;  int main() {   // construct input segments.   segment_2 segments[] = {segment_2 (point_2 (1, 5), point_2 (8, 5)),                           segment_2 (point_2 (1, 1), point_2 (8, 8)),                           segment_2 (point_2 (3, 1), point_2 (3, 8)),                           segment_2 (point_2 (8, 5), point_2 (8, 8))};    // compute intersection points.   std::list<point_2>     pts;    cgal::compute_intersection_points (segments, segments + 4,                                      std::back_inserter (pts));    // print result.   std::cout << "found " << pts.size() << " intersection points: " << std::endl;    std::copy (pts.begin(), pts.end(),              std::ostream_iterator<point_2>(std::cout, "\n"));    // compute non-intersecting sub-segments induced input segments.   std::list<segment_2>   sub_segs;    cgal::compute_subcurves(segments, segments + 4, std::back_inserter(sub_segs));    std::cout << "found " << sub_segs.size()             << " interior-disjoint sub-segments." << std::endl;    cgal_assertion (cgal::do_curves_intersect (segments, segments + 4));    return 0; } 

edit:

>>> g++ --version i686-apple-darwin11-llvm-g++-4.2 (gcc) 4.2.1 (based on apple inc. build 5658) (llvm build 2336.11.00) copyright (c) 2007 free software foundation, inc. free software; see source copying conditions.  there no  >>> g++ sweep_line.cpp in file included /usr/local/include/cgal/bbox_2.h:31,                  /usr/local/include/cgal/basic_classes.h:31,                  /usr/local/include/cgal/cartesian/cartesian_base.h:29,                  /usr/local/include/cgal/cartesian.h:28,                  sweep_line.cpp:4: /usr/local/include/cgal/array.h:81: error: expected nested-name-specifier before '...' token /usr/local/include/cgal/array.h:81: error: expected '>' before '...' token /usr/local/include/cgal/array.h:83: error: template argument 2 invalid /usr/local/include/cgal/array.h:84: error: expected ',' or '...' before '&' token /usr/local/include/cgal/array.h: in function 'int cgal::make_array(const t&, int)': /usr/local/include/cgal/array.h:86: error: template argument 2 invalid /usr/local/include/cgal/array.h:86: error: invalid type in declaration before '=' token /usr/local/include/cgal/array.h:86: error: 'args' not declared in scope /usr/local/include/cgal/array.h:86: error: expected `}' before '...' token /usr/local/include/cgal/array.h:86: error: expected `}' before '...' token /usr/local/include/cgal/array.h:86: error: expected ',' or ';' before '...' token /usr/local/include/cgal/array.h: @ global scope: /usr/local/include/cgal/array.h:87: error: expected unqualified-id before 'return' /usr/local/include/cgal/array.h:88: error: expected declaration before '}' token     warranty; not merchantability or fitness particular purpose.    >>>g++ sweep_line.cpp -lcgal -i/usr/local/include/cgal in file included /usr/local/include/cgal/gmpxx_coercion_traits.h:35,                  /usr/local/include/cgal/mpz_class.h:29,                  /usr/local/include/cgal/gmpxx.h:47,                  /usr/local/include/cgal/is_convertible.h:28,                  /usr/local/include/cgal/rational_traits.h:31,                  /usr/local/include/cgal/number_type_basic.h:65,                  /usr/local/include/cgal/basic.h:36,                  /usr/local/include/cgal/cartesian/cartesian_base.h:28,                  /usr/local/include/cgal/cartesian.h:28,                  sweep_line.cpp:4: /usr/local/include/mpfr.h:181: error: expected ';' before '*' token /usr/local/include/mpfr.h:279: error: expected constructor, destructor, or type conversion before 'const' /usr/local/include/mpfr.h:280: error: expected constructor, destructor, or type conversion before 'const' /usr/local/include/mpfr.h:281: error: expected constructor, destructor, or type conversion before 'int' /usr/local/include/mpfr.h:282: error: expected constructor, destructor, or type conversion before 'int' /usr/local/include/mpfr.h:283: error: expected constructor, destructor, or type conversion before 'int' /usr/local/include/mpfr.h:284: error: expected constructor, destructor, or type conversion before 'const' /usr/local/include/mpfr.h:286: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:287: error: expected constructor, destructor, or type conversion before 'int' /usr/local/include/mpfr.h:288: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:289: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:290: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:291: error: expected constructor, destructor, or type conversion before 'int' /usr/local/include/mpfr.h:292: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:293: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:295: error: expected constructor, destructor, or type conversion before 'void' /usr/local/include/mpfr.h:296: error: '__gmp_declspec' not name type /usr/local/include/mpfr.h:297: error: expected constructor, destructor, or type conversion before 'const' /usr/local/include/mpfr.h:300: error: expected constructor, destructor, or type conversion before 'void' /usr/local/include/mpfr.h:301: error: expected constructor, destructor, or type conversion before 'void' /usr/local/include/mpfr.h:302: error: expected constructor, destructor, or type conversion before 'void' /usr/local/include/mpfr.h:303: error: expected constructor, destructor, or type conversion before 'void' /usr/local/include/mpfr.h:304: error: expected constructor, destructor, or type conversion before 'void' 

you have 2 ways:

  1. allow c++11 adding corresponding flag compiler(--std=c++11 or --std=c++0x).
  2. define cgal_cfg_no_cpp0x_array, cgal_cfg_no_tr1_array , cgal_cfg_no_variadic_templates. note: in case need boost/array.hpp header.

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -