2017-09-17 10 views
0

Après quelques efforts, j'ai pu compiler l'environnement CGAL sous Windows. Pour le faire, je le suivi description provided by CGAL, donc toutes les librairies et les fichiers sont situés dans c: \ dev \ CGAL-4.10.1Exemple CGAL de base de QT5 Creator sur Windows

Maintenant, le temps est venu d'utiliser CGAL en combinaison avec QT5 Créateur. Pour un premier test je voudrais juste mettre en place un projet de base qui est capable de compiler du code vide avec une seule instruction d'inclusion CGAL. Par conséquent, j'ai créé un nouveau projet dans Qt5 Creator.

Le mainwindows.cpp a une CGAL instruction include (AABB_face_graph_triangle_primitive.h):

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

#include <CGAL/AABB_face_graph_triangle_primitive.h> 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
} 

MainWindow::~MainWindow() 
{ 
    delete ui; 
} 

Je choisis AABB_face_graph_triangle_primitive.h comme un exemple.

  • Iteration 1:

Le fichier de projet (.pro) doit contenir toutes les références afin de trouver les fichiers .h (et probablement les fichiers .lib?). J'ai donc ajouté la ligne:

INCLUDEPATH += C:\dev\CGAL-4.10.1\include 

Compiler ce projet donne l'erreur suivante:

fatal error C1083: Cannot open include file: 'CGAL/AABB_face_graph_triangle_primitive.h': No such file or directory 

Étant donné que le fichier ne vraiment existe, la racine de ce problème réside en omettant d'inclure les chemins d'corrects. Que devrait-on ajouter au fichier de projet pour compiler ce programme vierge de base?

  • Iteration 2:

Je remarqué que lorsque un clic droit sur le nom du projet que je peux sélectionner « Ajouter Library » à générer automatiquement des déclarations dans le fichier .pro. Ici j'ai sélectionné 'Bibliothèque externe'. Pour le 'fichier de bibliothèque' je suis passé à 'C: \ dev \ CGAL-4.10.1 \ build \ lib \ version \ CGAL_Qt5-vc140-mt-4.10.1.lib' (pas sûr si c'est le bon? , mais c'est le dossier de version qu'un Qt5 est dans son nom?). Pour le 'Include Path' je suis passé à 'C: \ dev \ CGAL-4.10.1 \ build \ include' (aussi pas sûr?). J'ai désélectionné 'linux' et 'Mac', donc seulement 'Windows' a été sélectionné.

Cela a généré tho texte suivant qui a été automatiquement ajouté au fichier .pro:

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../dev/CGAL- 
4.10.1/build/lib/release/ -lCGAL_Qt5-vc140-mt-4.10.1 
else:win32:CONFIG(debug, debug|release): LIBS += - 
L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/debug/ -lCGAL_Qt5-vc140-mt- 
4.10.1 
else:unix: LIBS += -L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/ -lCGAL_Qt5- 
vc140-mt-4.10.1 

INCLUDEPATH += $$PWD/../../../../dev/CGAL-4.10.1/build/include 
DEPENDPATH += $$PWD/../../../../dev/CGAL-4.10.1/build/include 

Malheureusement, même avec cette auto « plus avancé » généré .pro la compilation donne toujours une erreur de ne pas trouver le .h fichier ...

Question principale: Ce qui devrait être fourni dans le fichier .pro pour compiler avec succès un projet Qt5 Creator vide avec une simple instruction .h CGAL include sous Windows. Outre l'ajout d'une instruction 'INCLUDEPATH', il devrait également y avoir une référence à une bibliothèque CGAL (.lib). Si oui, comment l'instruction doit-elle être formée et quelle bibliothèque doit être ajoutée (CGAL_Qt5-vc140-mt-4.10.1.lib || CGAL_Qt5-vc140-mt-gd-4.10.1.lib).

(je remarquai que cette question a déjà été posée pour un environnement linux)

Répondre

0

Eh bien, c'est un peu gênant ...

La solution consistait à cliquer avec le bouton droit sur le nom du projet et à exécuter la commande qmake.

Pour être complet, voici mon fichier .pro

INCLUDEPATH += \ 
    C:\dev\CGAL-4.10.1\include \ 
    C:\dev\boost_1_65_1 \ 
    C:\dev\CGAL-4.10.1\build\include\ 


win32: LIBS += -L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/ -lCGAL_Qt5-vc140-mt-4.10.1 

INCLUDEPATH += $$PWD/../../../../dev/CGAL-4.10.1/include 
DEPENDPATH += $$PWD/../../../../dev/CGAL-4.10.1/include