Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt Creator error “No such file or directory” when using boost in mongocxx
Forum Updated to NodeBB v4.3 + New Features

Qt Creator error “No such file or directory” when using boost in mongocxx

Scheduled Pinned Locked Moved Solved General and Desktop
28 Posts 7 Posters 3.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    SimonR
    wrote on 24 Apr 2020, 18:10 last edited by
    #1

    I'm writing an application in Qt and want to add the mongocxx driver to access data in my db. I've added the libs and header files using LIBS and INCLUDEPATH. Now, mongocxx also requires boost. But now I get the error: C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi\bsoncxx\stdx\string_view.hpp:40: error: boost/version.hpp: No such file or directory #include <boost/version.hpp>. When I include the file in main.cpp, everything works fine. What should I do?

    My .pro file:

    QT += quick
    
    CONFIG += c++17
    
    DEFINES += QT_DEPRECATED_WARNINGS
    
    SOURCES += \
            main.cpp \
            signIn.cpp \
            signUp.cpp
    
    INCLUDEPATH += C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi \ C:\mongo-cxx-driver-3.4.1\include\mongocxx\v_noabi \ D:\boost_1_72_0
    
    RESOURCES += qml.qrc
    
    TRANSLATIONS += \
        LogIn_en_CA.ts
    
    QML_IMPORT_PATH =
    
    QML_DESIGNER_IMPORT_PATH =
    
    qnx: target.path = /tmp/$${TARGET}/bin
    else: unix:!android: target.path = /opt/$${TARGET}/bin
    !isEmpty(target.path): INSTALLS += target
    
    HEADERS += \
        signIn.h \
        signUp.h
    
    LIBS += C:\mongo-cxx-driver-3.4.1\lib\bsoncxx.lib \ C:\mongo-cxx-driver-3.4.1\lib\mongocxx.lib
    
    A P 2 Replies Last reply 25 Apr 2020, 06:14
    0
    • S SimonR
      24 Apr 2020, 18:10

      I'm writing an application in Qt and want to add the mongocxx driver to access data in my db. I've added the libs and header files using LIBS and INCLUDEPATH. Now, mongocxx also requires boost. But now I get the error: C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi\bsoncxx\stdx\string_view.hpp:40: error: boost/version.hpp: No such file or directory #include <boost/version.hpp>. When I include the file in main.cpp, everything works fine. What should I do?

      My .pro file:

      QT += quick
      
      CONFIG += c++17
      
      DEFINES += QT_DEPRECATED_WARNINGS
      
      SOURCES += \
              main.cpp \
              signIn.cpp \
              signUp.cpp
      
      INCLUDEPATH += C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi \ C:\mongo-cxx-driver-3.4.1\include\mongocxx\v_noabi \ D:\boost_1_72_0
      
      RESOURCES += qml.qrc
      
      TRANSLATIONS += \
          LogIn_en_CA.ts
      
      QML_IMPORT_PATH =
      
      QML_DESIGNER_IMPORT_PATH =
      
      qnx: target.path = /tmp/$${TARGET}/bin
      else: unix:!android: target.path = /opt/$${TARGET}/bin
      !isEmpty(target.path): INSTALLS += target
      
      HEADERS += \
          signIn.h \
          signUp.h
      
      LIBS += C:\mongo-cxx-driver-3.4.1\lib\bsoncxx.lib \ C:\mongo-cxx-driver-3.4.1\lib\mongocxx.lib
      
      A Offline
      A Offline
      aha_1980
      Lifetime Qt Champion
      wrote on 25 Apr 2020, 06:14 last edited by
      #2

      Hi @SimonR,

      I see two issues with your pro file:

      1. D:\boost_1_72_0 please replace all backslashes with forward slashes D:/boost_1_72_0
      2. The linker line should look like this (prefix paths with -L and lib names with -l and omit the suffix .lib:
      LIBS += -LC:/mongo-cxx-driver-3.4.1/lib -lbsoncxx \
              -LC:/mongo-cxx-driver-3.4.1/lib -lmongocxx
      

      Regards

      Qt has to stay free or it will die.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        SimonR
        wrote on 25 Apr 2020, 09:13 last edited by
        #3

        I've changed my .pro file to this now, but I still get the same error.

        QT += quick
        
        CONFIG += c++17
        
        DEFINES += QT_DEPRECATED_WARNINGS
        
        SOURCES += \
                main.cpp \
                signIn.cpp \
                signUp.cpp
        
        INCLUDEPATH += C:/mongo-cxx-driver-3.4.1/include/bsoncxx/v_noabi \ C:/mongo-cxx-driver-3.4.1/include/mongocxx/v_noabi \ D:/boost_1_72_0
        
        RESOURCES += qml.qrc
        
        TRANSLATIONS += \
            LogIn_en_CA.ts
        
        QML_IMPORT_PATH =
        
        QML_DESIGNER_IMPORT_PATH =
        
        qnx: target.path = /tmp/$${TARGET}/bin
        else: unix:!android: target.path = /opt/$${TARGET}/bin
        !isEmpty(target.path): INSTALLS += target
        
        HEADERS += \
            signIn.h \
            signUp.h
        
        LIBS += -LC:/mongo-cxx-driver-3.4.1/lib -lbsoncxx \
                -LC:/mongo-cxx-driver-3.4.1/lib -lmongocxx
        
        B 1 Reply Last reply 25 Apr 2020, 11:06
        0
        • S SimonR
          25 Apr 2020, 09:13

          I've changed my .pro file to this now, but I still get the same error.

          QT += quick
          
          CONFIG += c++17
          
          DEFINES += QT_DEPRECATED_WARNINGS
          
          SOURCES += \
                  main.cpp \
                  signIn.cpp \
                  signUp.cpp
          
          INCLUDEPATH += C:/mongo-cxx-driver-3.4.1/include/bsoncxx/v_noabi \ C:/mongo-cxx-driver-3.4.1/include/mongocxx/v_noabi \ D:/boost_1_72_0
          
          RESOURCES += qml.qrc
          
          TRANSLATIONS += \
              LogIn_en_CA.ts
          
          QML_IMPORT_PATH =
          
          QML_DESIGNER_IMPORT_PATH =
          
          qnx: target.path = /tmp/$${TARGET}/bin
          else: unix:!android: target.path = /opt/$${TARGET}/bin
          !isEmpty(target.path): INSTALLS += target
          
          HEADERS += \
              signIn.h \
              signUp.h
          
          LIBS += -LC:/mongo-cxx-driver-3.4.1/lib -lbsoncxx \
                  -LC:/mongo-cxx-driver-3.4.1/lib -lmongocxx
          
          B Offline
          B Offline
          Bonnie
          wrote on 25 Apr 2020, 11:06 last edited by
          #4
          This post is deleted!
          1 Reply Last reply
          0
          • S SimonR
            24 Apr 2020, 18:10

            I'm writing an application in Qt and want to add the mongocxx driver to access data in my db. I've added the libs and header files using LIBS and INCLUDEPATH. Now, mongocxx also requires boost. But now I get the error: C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi\bsoncxx\stdx\string_view.hpp:40: error: boost/version.hpp: No such file or directory #include <boost/version.hpp>. When I include the file in main.cpp, everything works fine. What should I do?

            My .pro file:

            QT += quick
            
            CONFIG += c++17
            
            DEFINES += QT_DEPRECATED_WARNINGS
            
            SOURCES += \
                    main.cpp \
                    signIn.cpp \
                    signUp.cpp
            
            INCLUDEPATH += C:\mongo-cxx-driver-3.4.1\include\bsoncxx\v_noabi \ C:\mongo-cxx-driver-3.4.1\include\mongocxx\v_noabi \ D:\boost_1_72_0
            
            RESOURCES += qml.qrc
            
            TRANSLATIONS += \
                LogIn_en_CA.ts
            
            QML_IMPORT_PATH =
            
            QML_DESIGNER_IMPORT_PATH =
            
            qnx: target.path = /tmp/$${TARGET}/bin
            else: unix:!android: target.path = /opt/$${TARGET}/bin
            !isEmpty(target.path): INSTALLS += target
            
            HEADERS += \
                signIn.h \
                signUp.h
            
            LIBS += C:\mongo-cxx-driver-3.4.1\lib\bsoncxx.lib \ C:\mongo-cxx-driver-3.4.1\lib\mongocxx.lib
            
            P Offline
            P Offline
            Pablo J. Rogina
            wrote on 25 Apr 2020, 13:46 last edited by
            #5

            @SimonR

            No such file or directory #include <boost/version.hpp>.

            I guess you need to provide INCLUDEPATH with a path that points to a place where you can later finder a subfolder boost which insides has a file version.hpp

            So since you provide D:/boost_1_72_0 does it hold there?
            I mean is your folder structure like this?:

            D:
            |---boost_1_72_0
                |---boost
                    |---version.hpp
            

            Upvote the answer(s) that helped you solve the issue
            Use "Topic Tools" button to mark your post as Solved
            Add screenshots via postimage.org
            Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

            1 Reply Last reply
            1
            • S Offline
              S Offline
              SimonR
              wrote on 25 Apr 2020, 14:17 last edited by
              #6

              @Pablo-J-Rogina
              Yes, my folder structure looks excactly like you discribed it. The strange thing is that when I include it in the main file,
              it doesn't cause any errors. I've set up an test application in Visual Studio and everything works fine there.

              A 1 Reply Last reply 25 Apr 2020, 14:24
              0
              • S SimonR
                25 Apr 2020, 14:17

                @Pablo-J-Rogina
                Yes, my folder structure looks excactly like you discribed it. The strange thing is that when I include it in the main file,
                it doesn't cause any errors. I've set up an test application in Visual Studio and everything works fine there.

                A Offline
                A Offline
                aha_1980
                Lifetime Qt Champion
                wrote on 25 Apr 2020, 14:24 last edited by
                #7

                @SimonR

                What happens if you fix your include path?

                INCLUDEPATH += C:/mongo-cxx-driver-3.4.1/include/bsoncxx/v_noabi \ 
                      C:/mongo-cxx-driver-3.4.1/include/mongocxx/v_noabi \ 
                      D:/boost_1_72_0
                

                Also, please show the compile output line leading to this error so we can check the flags passed to the compiler.

                Qt has to stay free or it will die.

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SimonR
                  wrote on 25 Apr 2020, 15:38 last edited by SimonR
                  #8

                  Strange, it's compiling now. But when I try to access a database using

                  mongocxx::instance inst{
                  mongocxx::client conn{ mongocxx::uri{"connection string goes here"} };
                  bsoncxx::builder::stream::document document{};
                  

                  , I get lots of errors. I think these are linking errors.

                  d8ca774c-eef3-492d-8fdb-f49314a757f9-image.png

                  Please excuse that I ask a lot, but I'm new to Qt Creator.

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on 25 Apr 2020, 18:36 last edited by
                    #9

                    Hi,

                    Are you sure that the libraries are of the correct architecture and built by the same compiler ?

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    2
                    • S Offline
                      S Offline
                      SimonR
                      wrote on 26 Apr 2020, 09:24 last edited by
                      #10

                      The compiler used for building the driver was MSVC, so that might be an issue because Qt Creator uses MinGW. How can I change the compiler?

                      M 1 Reply Last reply 26 Apr 2020, 09:26
                      0
                      • S SimonR
                        26 Apr 2020, 09:24

                        The compiler used for building the driver was MSVC, so that might be an issue because Qt Creator uses MinGW. How can I change the compiler?

                        M Offline
                        M Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on 26 Apr 2020, 09:26 last edited by
                        #11

                        @SimonR
                        Hi
                        Use Qt maintenance tool to install the visual studio version of Qt for 2017/2019 32/64 VS
                        and then go and download the compiler from Microsoft site.

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SimonR
                          wrote on 26 Apr 2020, 10:56 last edited by
                          #12

                          @mrjj
                          Can you please provide me better guide how to change the compiler? I've looked it up in the internet but I haven't found anything useful. Ans can I still compile QML applications with MSVC?

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on 26 Apr 2020, 12:12 last edited by
                            #13

                            Well: go to the Microsoft website, download the Visual Studio installer, then execute it.

                            As for Qt Quick, the compiler has no role here. As long as you have the modules built, it will work.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              SimonR
                              wrote on 26 Apr 2020, 12:50 last edited by
                              #14

                              So, I have Visual Studio now, anything else I have to do? The compiler is still MinGW.

                              1 Reply Last reply
                              0
                              • S Offline
                                S Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on 26 Apr 2020, 12:52 last edited by
                                #15

                                As @mrjj already suggested, did you install the MSVC build of Qt ?

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  SimonR
                                  wrote on 26 Apr 2020, 13:33 last edited by
                                  #16

                                  When I open Qt Maintenance Tool, it looks like this:
                                  38cedf62-5358-438d-b3b4-0e3f8b27bcfd-image.png

                                  J 1 Reply Last reply 27 Apr 2020, 05:13
                                  0
                                  • S SimonR
                                    26 Apr 2020, 13:33

                                    When I open Qt Maintenance Tool, it looks like this:
                                    38cedf62-5358-438d-b3b4-0e3f8b27bcfd-image.png

                                    J Offline
                                    J Offline
                                    jsulm
                                    Lifetime Qt Champion
                                    wrote on 27 Apr 2020, 05:13 last edited by
                                    #17

                                    @SimonR Did you select Kit configured for MSVC compiler/Qt to build you project?

                                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      SimonR
                                      wrote on 27 Apr 2020, 06:09 last edited by SimonR
                                      #18

                                      I've selected the right compiler now,
                                      40fa38e3-8282-4101-ad3d-f6958120265c-image.png
                                      but when I try to run the program, I get an error.
                                      1f000937-a8e5-4c5e-8ff6-d61d251da9d9-image.png
                                      When I open the kits section, it shows some warnings:
                                      07d09771-b8c0-44aa-aa74-d29089de6514-image.png
                                      Is this normal? Or do I have to set up something else? Also, I found out that you can change it compiler, but it only shows amd64 and x86 architecture. I have an Intel processor, can I still use the amd64 because I haven't found the right settings for Intel processors?
                                      b812af3a-963f-4931-8966-50c00457d3e6-image.png

                                      J 1 Reply Last reply 27 Apr 2020, 07:09
                                      0
                                      • S SimonR
                                        27 Apr 2020, 06:09

                                        I've selected the right compiler now,
                                        40fa38e3-8282-4101-ad3d-f6958120265c-image.png
                                        but when I try to run the program, I get an error.
                                        1f000937-a8e5-4c5e-8ff6-d61d251da9d9-image.png
                                        When I open the kits section, it shows some warnings:
                                        07d09771-b8c0-44aa-aa74-d29089de6514-image.png
                                        Is this normal? Or do I have to set up something else? Also, I found out that you can change it compiler, but it only shows amd64 and x86 architecture. I have an Intel processor, can I still use the amd64 because I haven't found the right settings for Intel processors?
                                        b812af3a-963f-4931-8966-50c00457d3e6-image.png

                                        J Offline
                                        J Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on 27 Apr 2020, 07:09 last edited by
                                        #19

                                        @SimonR Run it through debugger - looks like it is crashing.

                                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        1 Reply Last reply
                                        1
                                        • S Offline
                                          S Offline
                                          SimonR
                                          wrote on 27 Apr 2020, 10:05 last edited by
                                          #20

                                          So I've set up the compiler now, but when I run the application I get errors:
                                          4ba8dbb8-adb6-4ec1-9dec-bce6b42e8574-image.png

                                          I don't know why the language is German, because it's set to English. But as far as I know, those errors are linking errors, so I guess the libraries are not included correctly.

                                          Here is my .pro file:

                                          QT += quick
                                          
                                          CONFIG += c++17
                                          
                                          DEFINES += QT_DEPRECATED_WARNINGS
                                          
                                          SOURCES += \
                                                  main.cpp \
                                                  signIn.cpp \
                                                  signUp.cpp
                                          
                                          INCLUDEPATH += C:/mongo-cxx-driver-3.4.1/include/bsoncxx/v_noabi \
                                                         C:/mongo-cxx-driver-3.4.1/include/mongocxx/v_noabi \
                                                         D:/boost_1_72_0
                                          
                                          RESOURCES += qml.qrc
                                          
                                          TRANSLATIONS += \
                                              LogIn_en_CA.ts
                                          
                                          QML_IMPORT_PATH =
                                          
                                          QML_DESIGNER_IMPORT_PATH =
                                          
                                          qnx: target.path = /tmp/$${TARGET}/bin
                                          else: unix:!android: target.path = /opt/$${TARGET}/bin
                                          !isEmpty(target.path): INSTALLS += target
                                          
                                          HEADERS += \
                                              signIn.h \
                                              signUp.h
                                          
                                          LIBS += -LC:/mongo-cxx-driver-3.4.1/lib -lbsoncxx \
                                                  -LC:/mongo-cxx-driver-3.4.1/lib -lmongocxx
                                          
                                          J 1 Reply Last reply 27 Apr 2020, 10:11
                                          0

                                          9/28

                                          25 Apr 2020, 18:36

                                          19 unread
                                          • Login

                                          • Login or register to search.
                                          9 out of 28
                                          • First post
                                            9/28
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved