Linking CGAL & BOOSt to qt-creator project
-
I'm trying to use CGAL and BOOST libraries in a QT-Creator project
I'm facing many errors in BOOST,QT headers which are already in their packages not on my code
Compile output:
http://freetexthost.com/43fkwbup01
.pro file :
#------------------------------------------------- # # Project created by QtCreator 2018-04-02T13:41:57 # #------------------------------------------------- QT += core gui QT += widgets DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = dr_proj TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += main.cpp\ mainwindow.cpp \ my_polyhedron.cpp \ myqglwidget.cpp HEADERS += mainwindow.h \ My_CGAL_Config.h \ My_Face_base.h \ My_Halfedge_base.h \ my_polyhedron.h \ My_Vertex_base.h \ myqglwidget.h FORMS += mainwindow.ui INCLUDEPATH += C:/dev/CGAL-4.9/auxiliary/gmp/include INCLUDEPATH += C:/dev/CGAL-4.9/include INCLUDEPATH += C:/local/boost_1_59_0/ INCLUDEPATH += C:/dev/libQGLViewer-2.7.1/QGLViewer INCLUDEPATH += C:/dev/CGAL-4.9/build/include INCLUDEPATH += C:/Qt/Qt5.7.1/5.7/msvc2013_64/include INCLUDEPATH += C:/Qt/Qt5.7.1\5.7/msvc2013_64/include/QtXml INCLUDEPATH += C:/Qt/Qt5.7.1/5.7/msvc2013_64/include/QtOpenGL LIBS += -LC:/dev/CGAL-4.9/lib LIBS += -LC:/local/boost_1_59_0/libs LIBS += -LC:/dev/libQGLViewer-2.7.1/QGLViewer\ -lQGLViewerd2 LIBS += -LC:/Qt/Qt5.7.1/5.7/msvc2013_64/lib LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0\ LIBS +=-LC:/local/boost_1_59_0/lib64-msvc-12.0\ -libboost_system-vc120-mt-1_59 LIBS +=-LC:/local/boost_1_59_0/lib64-msvc-12.0\ -libboost_thread-vc120-mt-1_59 LIBS +=-LC:/local/boost_1_59_0/lib64-msvc-12.0\ -boost_filesystem-vc120-mt-1_59 DEPENDPATH += C:/dev/libQGLViewer-2.7.1/QGLViewer DEPENDPATH += C:/local/boost_1_59_0/libs DEPENDPATH += C:/dev/CGAL-4.9/lib DEPENDPATH += C:/Qt/Qt5.7.1/5.7/msvc2013_64/lib DEPENDPATH += C:/local/boost_1_59_0/lib64-msvc-12.0
MOST of errors about
*'boost::get (expects another no of arguments)- could not deduce template argument for 'const boost::readable * 'normal' : is not a member of 'CGAL::Point_3'
I appreciate any help , thanks
-
@nour.m
hi,
I'm by no means an expert in this, but your *.pro file is full of errors, try to fix them, make a clean build afterwards and lets se what happens than.first of dont use
\
in your path, a\
in path is Windows only, your project file will interpret this as, "continue in next line"LIBS += -LC:\local\boost_1_59_0\lib64-msvc-12.0 -libboost_system-vc120-mt-1_59 -libboost_thread-vc120-mt-1_59
should be
LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0 \ -libboost_system-vc120-mt-1_59 \ -libboost_thread-vc120-mt-1_59
Edit: @jsulm was a bit faster :)
-
-
I actually posted this previously, but you need to change this
LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0/ -libboost_system-vc120-mt-1_59/ -libboost_thread-vc120-mt-1_59/ -boost_filesystem-vc120-mt-1_59
to
LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0\ -libboost_system-vc120-mt-1_59\ -libboost_thread-vc120-mt-1_59\ -boost_filesystem-vc120-mt-1_59
otherwise
- -libboost_system-vc120-mt-1_59
- -libboost_thread-vc120-mt-1_59
and - -boost_filesystem-vc120-mt-1_59
will not be included.
The normal backwards Slash\
has its uses in the project file and here's one of them!or add the whole path
LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0 LIBS += -LC:/local/boost_1_59_0/libboost_system-vc120-mt-1_59 LIBS += -LC:/local/boost_1_59_0/libboost_thread-vc120-mt-1_59 LIBS += -LC:/local/boost_1_59_0/boost_filesystem-vc120-mt-1_59
-
A minor error on your part:
LIBS += -LC:/local/boost_1_59_0/lib64-msvc-12.0 \ -lboost_system-vc120-mt-1_59 \ -lboost_thread-vc120-mt-1_59 \ -lboost_filesystem-vc120-mt-1_59
Library prefixes are handled automatically with
qmake
when the proper-l
switch is passed. -
When I look at your upload at this section:
SOURCES += main.cpp mainwindow.cpp my_polyhedron.cpp myqglwidget.cpp
then you miss the backslashes here!
It should be:
SOURCES += main.cpp \ mainwindow.cpp \ my_polyhedron.cpp \ myqglwidget.cpp
Please check your project file everywhere and upload it again for review afterwards.
Thanks
-
if you mean here:
http://freetexthost.com/l5wzgtntzb
than no, you did not make the changes @aha_1980 told you to doSOURCES += main.cpp mainwindow.cpp my_polyhedron.cpp myqglwidget.cpp HEADERS += mainwindow.h My_CGAL_Config.h My_Face_base.h My_Halfedge_base.h my_polyhedron.h My_Vertex_base.h myqglwidget.h
still mising
\
at the end of the linealso you are adding the
widgets
module twice. I'm not sure in what that will result, but you should remove oneQT += core gui QT += widgets //remove me DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets