compiling CGAL draw_polygon and linking qt5

Viewed 31

I am trying to learn meshing algorithm for CFD puposes and I found CGAL to be a good library to learn everything from ground. My vcpkg cgal[qt5] installation failes due to some problem in installing boost. But other library installation works. I also tried to follow this tutorial but OpenGR and libpointmatcher library generation fails and results cmake error. So I have to setup everything manually. I am using Visual Studio 2022 and Qt5.15.2. I have qt extension downloaded and configured in visual studio. I have also QTDIR variable created in enviroment variables and Qt bin directory in system path.

What I did is as follows-

(1). first I created an empty console application called polygon and added various example code provided by cgal as a source and configuration x64, Release. changed

(2). created a folder library inside solution directory and extracted downloaded cgal-5.5.zip(has include, data, demo, etc ....) to library directory and added $(SolutionDir)library\cgal-5.5\include to additional include path in property manager.

(3). downloaded boost_1_80 from boost.org and compiled with the foolowing steps-

  1. .\bootstrap

  2. open project-config.jam and add-

    using mpi ;

    using python ;

  3. run the command-

    .\b2 --build-dir=build\x64 address-model=64 threading=multi --stagedir=stage/x64 --toolset=msvc -j 16 link=static,shared runtime-link=static,shared --variant=debug,release

    added the boost_1_80 folder in include path and stage/x64/lib to additional library directory.

(4). I have built gmp and mpfr with vcpkg with .\vcpkg install gmp:x64-windows-static & .\vcpkg install mpfr:x64-windows-staticcommand and copied the folders gmp_x64-windows-static and mpfr_x64-windows-static to the library directory. I added include and lib folder of both library to respective path and in linker->additional dependency included the two lib file gmp.lib and mpfr.lib

(5). copied images, meshes, points_3 folder from data to solution directory

I can add eigen3, zlib to my project using the same process and all the examples I tried depend on the above libraries compiled and ran properly.

The problem comes when I try to do examples involves qt5. For example program draw_polygon.c-

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Polygon_2.h>
#include <CGAL/draw_polygon_2.h>

typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Polygon_2<K>                                  Polygon_2;
typedef CGAL::Point_2<K>                                    Point;

int main()
{
  // create a polygon and put some points in it
  Polygon_2 p;
  p.push_back(Point(0,0));
  p.push_back(Point(4,0));
  p.push_back(Point(4,4));
  p.push_back(Point(2,2));
  p.push_back(Point(0,4));

  CGAL::draw(p);

  return EXIT_SUCCESS;
}  

I tried following this tutorial but it's made for older version of Qt(Qt4) and Qt5 does not have Qt folder(..\path to\Qt<QT-version>\include) inside includes. This program does not any form file but I added the rest of the includes and lib files accordingly. When I try to compile, it says CGAL_USE_BASIC_VIEWER not defined. Given in this article if I write #define CGAL_USE_BASIC_VIEWER before the includes the errors generated are like -

Then I tried doing from qt empty project in visual studio interface which still gives errors-

Obviously my linking failed. How do I fix it for my case? I have went through several other articles none had definite answers.

0 Answers
Related