Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Linking CGAL & BOOSt to qt-creator project
nour.m last edited by nour.m
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
.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 Don't use \ in pro file in paths.
This line is wrong also:
INCLUDEPATH += C:/local/boost_1_59_0 -lboost_filesystem
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
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 :)
@J.Hilk Thanks a lot for help
I updated the .pro file , then clean &rebuild
and the errors still
can you post your modified pro file?
@jsulm mentioned one error, I an other one and at least one was not mentioned by either of us.
Also you need need to run qmake after modifiying the project file. I'm not sure if thats part of the normal clean/rebuild functionality
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
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
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
qmakewhen the proper
-lswitch is passed.
nour.m last edited by nour.m
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.
@aha_1980 I updated the post
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
\at the end of the line
also you are adding the
widgetsmodule twice. I'm not sure in what that will result, but you should remove one
QT += core gui QT += widgets //remove me DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x000000 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets