Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. Application with plugin crashes after calling macdeployqt.
Forum Updated to NodeBB v4.3 + New Features

Application with plugin crashes after calling macdeployqt.

Scheduled Pinned Locked Moved Unsolved Qt Creator and other tools
29 Posts 2 Posters 4.2k Views 1 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.
  • SGaistS SGaist

    Check your plugin with otool -L you'll see that the libraries it depends on are searched into your application bundle. Hence they will fail to load if you moved them around.

    D Offline
    D Offline
    dokif
    wrote on last edited by
    #20

    @SGaist Well, i finally managed to get an error, running the executable inside the .app directly from console:

    
    "/Users/mac/Library/Application Support/laigter"
    objc[95815]: Class CaptureDelegate is implemented in both /Users/mac/laigter-1.8/laigter.app/Contents/Frameworks/libopencv_videoio.4.1.dylib (0x1046d1ae0) and /usr/local/opt/opencv/lib/libopencv_videoio.4.1.dylib (0x12745aae0). One of the two will be used. Which one is undefined.
    objc[95815]: Class CVWindow is implemented in both /Users/mac/laigter-1.8/laigter.app/Contents/Frameworks/libopencv_highgui.4.1.dylib (0x104699330) and /usr/local/opt/opencv/lib/libopencv_highgui.4.1.dylib (0x127420330). One of the two will be used. Which one is undefined.
    objc[95815]: Class CVView is implemented in both /Users/mac/laigter-1.8/laigter.app/Contents/Frameworks/libopencv_highgui.4.1.dylib (0x104699358) and /usr/local/opt/opencv/lib/libopencv_highgui.4.1.dylib (0x127420358). One of the two will be used. Which one is undefined.
    objc[95815]: Class CVSlider is implemented in both /Users/mac/laigter-1.8/laigter.app/Contents/Frameworks/libopencv_highgui.4.1.dylib (0x104699380) and /usr/local/opt/opencv/lib/libopencv_highgui.4.1.dylib (0x127420380). One of the two will be used. Which one is undefined.
    ERROR: something wrong with flag 'flagfile' in file '/tmp/gflags-20190105-77846-1pdnfpc/gflags-2.2.2/src/gflags.cc'.  One possibility: file '/tmp/gflags-20190105-77846-1pdnfpc/gflags-2.2.2/src/gflags.cc' is being linked both statically and dynamically into this executable.
    

    That error arrises just when i load the plugin into the application. So i what i understand here is that i must change where the plugin is looking for libs? Can i change that?

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

      Yes, you can change that use install_name_tool for that. That's what macdeployqt uses to do its job.

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

      D 1 Reply Last reply
      0
      • SGaistS SGaist

        Yes, you can change that use install_name_tool for that. That's what macdeployqt uses to do its job.

        D Offline
        D Offline
        dokif
        wrote on last edited by
        #22

        @SGaist Thanks! i'll try it tonight. So just so just to be sure, i must change where the plugin libNormalBrush.dylib looks for the libs, and change them to rpath?
        something like:

        install_name_tool -change each_one_of_the_libs.dylib @rpath/../lib/each_of_the_libs.dylib libNormalBrush.dylib 
        

        Right?

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

          Check the Qt plugins to see where they are looking for. You also have to check where your OpenCV libraries are stored in the bundle.

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

          D 1 Reply Last reply
          0
          • SGaistS SGaist

            Check the Qt plugins to see where they are looking for. You also have to check where your OpenCV libraries are stored in the bundle.

            D Offline
            D Offline
            dokif
            wrote on last edited by
            #24

            @SGaist Well, i tried with install_name_tool and changed the path correctly (i think) but it stills fails. I think the problem is this line:

            ERROR: something wrong with flag 'flagfile' in file '/tmp/gflags-20190105-77846-1pdnfpc/gflags-2.2.2/src/gflags.cc'.  One possibility: file '/tmp/gflags-20190105-77846-1pdnfpc/gflags-2.2.2/src/gflags.cc' is being linked both statically and dynamically into this executable.
            

            but i dont have a clue of what it means. I never had this problem before.

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

              What libraries are you using for that plugin ?

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

              D 2 Replies Last reply
              0
              • SGaistS SGaist

                What libraries are you using for that plugin ?

                D Offline
                D Offline
                dokif
                wrote on last edited by
                #26

                @SGaist Appart from qt libs, i'm using a custom class included in the application. That class uses some opencv libs, so the plugin itself seems to be linking to them. This is what otool says:

                	/usr/local/opt/opencv/lib/libopencv_gapi.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_stitching.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_aruco.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_bgsegm.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_bioinspired.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_ccalib.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_dnn_objdetect.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_dpm.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_face.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_freetype.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_fuzzy.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_hfs.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_img_hash.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_line_descriptor.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_quality.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_reg.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_rgbd.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_saliency.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_sfm.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_stereo.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_structured_light.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_phase_unwrapping.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_superres.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_optflow.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_surface_matching.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_tracking.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_datasets.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_text.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_dnn.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_plot.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_videostab.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_video.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_xfeatures2d.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_shape.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_ml.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_ximgproc.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_xobjdetect.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_objdetect.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_calib3d.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_features2d.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_highgui.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_videoio.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_imgcodecs.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_flann.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_xphoto.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_photo.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_imgproc.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	/usr/local/opt/opencv/lib/libopencv_core.4.1.dylib (compatibility version 4.1.0, current version 4.1.0)
                	@rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.13.0, current version 5.13.0)
                	@rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.13.0, current version 5.13.0)
                	@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.13.0, current version 5.13.0)
                	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
                	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
                	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
                	/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
                	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)
                	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.0.0)
                
                1 Reply Last reply
                0
                • SGaistS SGaist

                  What libraries are you using for that plugin ?

                  D Offline
                  D Offline
                  dokif
                  wrote on last edited by
                  #27

                  @SGaist That output from otool is previous i used install_name_tool to change the path. I looked inside the app and they are located in the same place where QtWidgets.framework and others are located, so i changed the path to @rpath
                  I dont have the mac right now (its borrowed), but i can send you the updated otool output if needed.

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

                    Yes, that would be nice.

                    Just for the sake of testing (and to ensure I am not missing anything), Does it also crash if you keep the plugin within the bundle with the other plugins ?

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

                    D 1 Reply Last reply
                    0
                    • SGaistS SGaist

                      Yes, that would be nice.

                      Just for the sake of testing (and to ensure I am not missing anything), Does it also crash if you keep the plugin within the bundle with the other plugins ?

                      D Offline
                      D Offline
                      dokif
                      wrote on last edited by
                      #29

                      @SGaist ill try that and write you back! I didnt try the other day because i though changing the paths would work.
                      Thanks a lot!

                      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