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. How to use Rcpp in Qt (with Mac) [Almost Solved]?
Forum Updated to NodeBB v4.3 + New Features

How to use Rcpp in Qt (with Mac) [Almost Solved]?

Scheduled Pinned Locked Moved General and Desktop
rcpp qt mac
25 Posts 3 Posters 8.5k Views 3 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.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #6

    There is nothing as "installing it via Qt". If you have installed it in R Studio then you just need to locate the R library and the header files I mentioned above. Then adjust the paths in your *.pro file.

    1 Reply Last reply
    1
    • N Offline
      N Offline
      newe12
      wrote on last edited by
      #7

      Thanks! I understand.

      Well in R Studio I identified the R library with ".Library"and I got:

      .Library
      [1] "/Library/Frameworks/R.framework/Resources/library"

      In combination with your suggestion I tried this:
      INCLUDEPATH += /Users/xy/share/R/include
      INCLUDEPATH += /Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include
      LIBS += -L/Users/xy/lib -lR
      but it was not working...

      1 Reply Last reply
      0
      • ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #8

        Sorry, but I can't help you with Mac OS. :-(

        1 Reply Last reply
        0
        • N Offline
          N Offline
          newe12
          wrote on last edited by
          #9

          Okay! Thank you very much for your help!

          1 Reply Last reply
          0
          • ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #10

            You're welcome!

            1 Reply Last reply
            1
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #11

              Hi and welcome to devnet,

              Try with -framework R in place of -lR

              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
              1
              • N Offline
                N Offline
                newe12
                wrote on last edited by newe12
                #12

                Thanks!

                Well, now I have got:
                INCLUDEPATH += /Users/xy/share/R/include
                INCLUDEPATH += /Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include
                LIBS += -L/Users/xy/Library -framework R

                but I still get:
                'Rcpp.h' file not found

                also if change to:
                LIBS += -L/Users/xy/Library/Frameworks/R.framework/

                and when I typed in R Studio:
                getw()

                I got:
                /Users/xy

                Sorry, but I do not find the mistake. Any idea?

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by SGaist
                  #13

                  It depends on how you wrote your includes

                  What mistake are you thinking about ?

                  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
                  • N Offline
                    N Offline
                    newe12
                    wrote on last edited by newe12
                    #14

                    I wrote my include: #include "Rcpp.h" in mainwindow.cpp.
                    It is not conflicting with: #include "math.h", or?

                    And it displays: directory not found for: LIBS += -L/Users/xy/Library/Frameworks/R.framework/ and also for: LIBS += -L/Users/xy/Library -framework R

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #15

                      To add a path for frameworks you should user -F /Users/xy/Library/Frameworks/
                      The includes are generally in fwname.framework/Headers

                      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
                      1
                      • N Offline
                        N Offline
                        newe12
                        wrote on last edited by newe12
                        #16

                        Hi!

                        Sorry, but Qt still does not find the "Rccp.h" file. I tried to include #include "Rcpp.h" in mainwindow.cpp or in mainwindow.h. Or should I include it in main.cpp?

                        and additionally I wrote in the .pro-file:
                        HEADERS += mainwindow.h

                        FORMS += mainwindow.ui

                        INCLUDEPATH += /Users/xy/share/R/include
                        INCLUDEPATH += /Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include
                        LIBS += -L/Users/xy/Library/Frameworks/R.framework/
                        INCLUDEPATH += -F/Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include

                        and I tried: INCLUDEPATH += "/Users/.../include" using: "..." but same result.

                        In RStudio it gives me:

                        .Library
                        [1] "/Library/Frameworks/R.framework/Resources/library"
                        getwd()
                        [1] "/Users/xy"

                        So I combined: "/Users/xy/Library/Frameworks/R.framework/Resources/library"

                        Unfortunately, always the same result 'Rcpp.h' not found.

                        Even they: https://stat.ethz.ch/pipermail/r-sig-mac/2011-May/008270.html found
                        "/Library/Frameworks/R.framework/Resources/library" should be alright!

                        Has got anyone an idea?

                        I just want to use 'Rcpp.h' (which I already installed via RStudio, where it loads and runs without any problems) in Qt with a Mac. :-)

                        1 Reply Last reply
                        0
                        • N Offline
                          N Offline
                          newe12
                          wrote on last edited by
                          #17

                          Has anyone an idea to get Rcpp.h http://dirk.eddelbuettel.com/code/rcpp/html/Rmath_8h.html
                          running in Qt with a Mac?

                          1 Reply Last reply
                          0
                          • ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #18

                            Hi again!
                            Can you open the directory "/Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include" with a file manager? Does it contain the file "Rcpp.h" ?

                            1 Reply Last reply
                            0
                            • N Offline
                              N Offline
                              newe12
                              wrote on last edited by
                              #19

                              Hi,
                              I tried to re-install Rcpp.h:

                              • installing source package ‘Rcpp’ ...
                                ** Paket ‘Rcpp’ erfolgreich entpackt und MD5 Summen überprüft
                                ** libs
                                clang++ -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I../inst/include/ -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include
                                ...
                                ...
                                clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o barrier.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
                                installing to /Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/libs
                                ** R
                                ** inst
                                ** preparing package for lazy loading
                                ** help
                                *** installing help indices
                                ** building package indices
                                ** installing vignettes
                                ** testing if installed package can be loaded
                              • DONE (Rcpp)

                              then I used:
                              INCLUDEPATH += /Users/xy/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include
                              LIBS += -I/Library/Frameworks/R.framework/Resources/include
                              or
                              LIBS += -F/Library/Frameworks/R.framework/Resources/include

                              It still does not run!

                              1 Reply Last reply
                              0
                              • ? Offline
                                ? Offline
                                A Former User
                                wrote on last edited by
                                #20

                                Hallo :-)

                                -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o

                                I see that some object code files have been installed. But are you really sure that the file "Rcpp.h" exists in "/Users/xy/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" ? Maybe the Rcpp project has been split in two separate packages: One package only for software that uses Rcpp binaries and a second package for developers that includes all the header files (so called "-dev" package)?

                                N 1 Reply Last reply
                                1
                                • ? A Former User

                                  Hallo :-)

                                  -o Rcpp.so Date.o Module.o Rcpp_init.o api.o attributes.o

                                  I see that some object code files have been installed. But are you really sure that the file "Rcpp.h" exists in "/Users/xy/Library/Frameworks/R.framework/Versions/3.1/Resources/library/Rcpp/include" ? Maybe the Rcpp project has been split in two separate packages: One package only for software that uses Rcpp binaries and a second package for developers that includes all the header files (so called "-dev" package)?

                                  N Offline
                                  N Offline
                                  newe12
                                  wrote on last edited by newe12
                                  #21

                                  Hi Wieland!

                                  Thanks! Yes it exists!

                                  I checked (in the Terminal): cd /Library/Frameworks/R.framework/Resources/library
                                  and then "ls"

                                  And it is there: Rcpp

                                  Then i changed to: cd Rcpp and "ls" gave me:
                                  CITATION NAMESPACE THANKS examples libs
                                  DESCRIPTION NEWS.Rd announce help prompt
                                  INDEX R discovery html skeleton
                                  Meta README doc

                                  This was initially downloaded from: http://cran.r-project.org/web/packages/Rcpp/index.html

                                  And I changed:
                                  INCLUDEPATH += /Users/xy/Library/Frameworks/R.framework/Resources/library/Rcpp/include
                                  LIBS += -I/Users/xy/Library/ -framework R
                                  in the .Pro-file.

                                  Any ideas?

                                  1 Reply Last reply
                                  0
                                  • ? Offline
                                    ? Offline
                                    A Former User
                                    wrote on last edited by A Former User
                                    #22

                                    Sorry for being pedantic on this (I'm only as pedantic as the compiler is ;-) ). You said:

                                    cd /Library/Frameworks/R.framework/Resources/library
                                    And it is there: Rcpp

                                    That is a directory. Where exactly is the file Rcpp.h?

                                    1 Reply Last reply
                                    1
                                    • N Offline
                                      N Offline
                                      newe12
                                      wrote on last edited by newe12
                                      #23

                                      Hi Wieland, thanks for your hint!

                                      Finally, I found Rcpp.h and I managed to include it with the correct path and now Rcpp.h is found!
                                      Here the two steps, which helped me to solve it:

                                      1. QMAKE_LFLAGS += -I /Library/Frameworks/R.framework/Resources/library/Rcpp/ # use qmake and then uncomment it
                                      2. INCLUDEPATH += -I /Library/Frameworks/R.framework/Resources/library/Rcpp/include
                                        Remark: Very important was to change the path directly to /Library/... and include "-I".

                                      This first part of the problem is solved!

                                      But now, i get the new error message: framework not found R.

                                      I use: LIBS += -framework R
                                      in the .Pro-file (as suggested here: http://doc.qt.io/qt-4.8/qmake-platform-notes.html).
                                      I also tried: LIBS += -framework -lR
                                      it also did not work.

                                      Here is the error message:

                                      ld: framework not found R
                                      clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                      make: *** [xy.app/Contents/MacOS/xy] Error 1
                                      19:13:17: Der Prozess "/usr/bin/make" wurde mit dem Rückgabewert 2 beendet.
                                      Fehler beim Erstellen/Deployment des Projekts xy (Kit: Desktop Qt 5.4.1 clang 64bit)
                                      Bei der Ausführung von Schritt "Make"

                                      I hope this second part can also be solved. Then it should work! Any suggestions?

                                      1 Reply Last reply
                                      0
                                      • SGaistS Offline
                                        SGaistS Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #24

                                        Hi,

                                        Did you add -F/Library/Frameworks to your pro file ? It's the equivalent to -L for libraries

                                        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
                                        1
                                        • N Offline
                                          N Offline
                                          newe12
                                          wrote on last edited by
                                          #25

                                          Yes!

                                          Well, the problem removed, but this came up:
                                          Undefined symbols for architecture x86_64:
                                          "_REprintf", referenced from:
                                          Rcpp::Rstreambuf<false>::xsputn(char const*, long) in mainwindow.o
                                          Rcpp::Rstreambuf<false>::overflow(int) in mainwindow.o
                                          "_R_FlushConsole", referenced from:
                                          Rcpp::Rstreambuf<false>::sync() in mainwindow.o
                                          Rcpp::Rstreambuf<true>::sync() in mainwindow.o
                                          "_Rprintf", referenced from:
                                          Rcpp::Rstreambuf<true>::xsputn(char const*, long) in mainwindow.o
                                          Rcpp::Rstreambuf<true>::overflow(int) in mainwindow.o
                                          ld: symbol(s) not found for architecture x86_64
                                          clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                          make: *** [xy.app/Contents/MacOS/xy] Error 1
                                          23:51:38: Der Prozess "/usr/bin/make" wurde mit dem Rückgabewert 2 beendet.
                                          Fehler beim Erstellen/Deployment des Projekts xy (Kit: Desktop Qt 5.4.1 clang 64bit)
                                          Bei der Ausführung von Schritt "Make"

                                          Especially: symbol(s) not found for architecture x86_64
                                          does not disappear after several tries.

                                          Here: https://forum.qt.io/topic/35065/solved-qt5-1-qt5-2-xcode-5-0-2-mac-os-10-9-mavericks-can-t-link-to-the-libraries-undefined-symbols-for-architecture-x86_64/11
                                          it was described that Xcode and Mac Os were not linked properly.

                                          Here: http://stackoverflow.com/questions/25940368/qt5-target-conditionals-not-found
                                          QMAKE_MAC_SDK = macosx10.9
                                          was suggested. Either it failed, or: Project ERROR: Could not resolve SDK path for 'macosx10.xy'
                                          was displayed!

                                          Well yet not solved... :-)

                                          1 Reply Last reply
                                          0

                                          • Login

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