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



  • 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
    alt text

    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


  • Qt Champions 2019

    @nour.m Don't use \ in pro file in paths.
    This line is wrong also:

    INCLUDEPATH += C:/local/boost_1_59_0 -lboost_filesystem
    

  • Moderators

    @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 :)



  • @J.Hilk Thanks a lot for help
    I updated the .pro file , then clean &rebuild
    and the errors still


  • Moderators

    @nour.m
    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




  • Moderators

    @nour.m

    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
    

  • Qt Champions 2017

    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.



  • @J.Hilk @kshegunov I updated the .pro file and the same errors are still found


  • Lifetime Qt Champion

    @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.

    Thanks



  • @aha_1980 done


  • Lifetime Qt Champion

    @nour.m where?



  • @aha_1980 I updated the post


  • Moderators

    @nour.m

    if you mean here:
    http://freetexthost.com/l5wzgtntzb
    than no, you did not make the changes @aha_1980 told you to do

    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
    

    still mising \ at the end of the line

    also you are adding the widgets module 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