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. Why Qt can't detect library from /usr/lib...
QtWS25 Last Chance

Why Qt can't detect library from /usr/lib...

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 4 Posters 4.8k Views
  • 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.
  • AbrarA Offline
    AbrarA Offline
    Abrar
    wrote on last edited by
    #1

    I created a library of my own and i install it using

    sudo make install
    

    And my library file successfully builds and copies at "/usr/lib". But when I include the library to another app of mine by

    LIBS += -llibraryname
    

    When building it says 'undefined reference to libraryFunction'. But if I do this

    LIBS += -L/usr/lib -llibraryname
    

    It got no error.
    Please tell me why is this happens.

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

      Hi,

      Run gcc -print-search-dirs, what do you get ?

      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
      • AbrarA Offline
        AbrarA Offline
        Abrar
        wrote on last edited by
        #3

        I found this...

        install: /usr/lib/gcc/x86_64-linux-gnu/7/
        programs: =/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/bin/
        libraries: =/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/7/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/7/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
        
        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          So as you can see, /usr/lib/ is not in the search path list, hence you have to add it yourself to your projects. Nothing Qt specific here.

          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
          • AbrarA Offline
            AbrarA Offline
            Abrar
            wrote on last edited by
            #5

            Can you please tell me how to do so...

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

              You already know:

              @Abrar said in Why Qt can't detect library from /usr/lib...:

              LIBS += -L/usr/lib

              That's the correct way.

              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
              • AbrarA Offline
                AbrarA Offline
                Abrar
                wrote on last edited by
                #7

                Is there any other way without specifying the lib path?

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

                  What's the problem with that ?

                  An alternative for you is to set the LIBRARY_PATH environment variable.

                  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
                  • AbrarA Offline
                    AbrarA Offline
                    Abrar
                    wrote on last edited by
                    #9

                    Thanks for the alternative...

                    S 1 Reply Last reply
                    0
                    • AbrarA Abrar

                      Thanks for the alternative...

                      S Offline
                      S Offline
                      saber
                      wrote on last edited by
                      #10

                      @Abrar i think this way calling lib is standard as it is included in qt.

                      1 Reply Last reply
                      0
                      • AbrarA Offline
                        AbrarA Offline
                        Abrar
                        wrote on last edited by
                        #11

                        Can you tell me what is the standard way @saber ....

                        S 1 Reply Last reply
                        0
                        • AbrarA Abrar

                          Can you tell me what is the standard way @saber ....

                          S Offline
                          S Offline
                          saber
                          wrote on last edited by
                          #12

                          @Abrar both

                          LIBS += -llibraryname
                          

                          and

                          LIBS += -L/usr/lib -llibraryname
                          

                          i am pretty sure , i know only this tow way. i think @mrjj , @JonB , @VRonin can help you better.

                          AbrarA JonBJ 2 Replies Last reply
                          0
                          • S saber

                            @Abrar both

                            LIBS += -llibraryname
                            

                            and

                            LIBS += -L/usr/lib -llibraryname
                            

                            i am pretty sure , i know only this tow way. i think @mrjj , @JonB , @VRonin can help you better.

                            AbrarA Offline
                            AbrarA Offline
                            Abrar
                            wrote on last edited by
                            #13

                            @saber Ok i am waiting for there statement...
                            @mrjj , @JonB , @VRonin

                            1 Reply Last reply
                            0
                            • S saber

                              @Abrar both

                              LIBS += -llibraryname
                              

                              and

                              LIBS += -L/usr/lib -llibraryname
                              

                              i am pretty sure , i know only this tow way. i think @mrjj , @JonB , @VRonin can help you better.

                              JonBJ Offline
                              JonBJ Offline
                              JonB
                              wrote on last edited by JonB
                              #14

                              @saber
                              Like @SGaist has said, you change the library search path you must either use -L... or alter the LIBRARY_PATH environment variable. What is the problem with one of these?

                              AbrarA 1 Reply Last reply
                              0
                              • JonBJ JonB

                                @saber
                                Like @SGaist has said, you change the library search path you must either use -L... or alter the LIBRARY_PATH environment variable. What is the problem with one of these?

                                AbrarA Offline
                                AbrarA Offline
                                Abrar
                                wrote on last edited by
                                #15

                                @JonB Actually there is no problem. But I just faced another issue that is I created another library and when I include that by -llibraryname that just builds fine...
                                And why is that. As one(my 2nd library) got the path but other(1st library) can't....
                                !!!
                                Please reply....

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

                                  Where's that library located ?
                                  How are you linking to it ?
                                  Do you have any flags set for it that is not set for the first one ?

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

                                  AbrarA 1 Reply Last reply
                                  0
                                  • SGaistS SGaist

                                    Where's that library located ?
                                    How are you linking to it ?
                                    Do you have any flags set for it that is not set for the first one ?

                                    AbrarA Offline
                                    AbrarA Offline
                                    Abrar
                                    wrote on last edited by Abrar
                                    #17

                                    @SGaist the 2nd library also installs at /usr/lib
                                    And I just link it by typing
                                    LIBS += -llibraryname
                                    Like the 1st library.
                                    But didn't add any more thing. And also I test two of them at once.
                                    Is there any thing you can tell what is happening?

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

                                      As already asked, show your .pro file.

                                      From what you wrote, you just added a new library to the list. So the folder was already added earlier.

                                      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
                                      • AbrarA Offline
                                        AbrarA Offline
                                        Abrar
                                        wrote on last edited by
                                        #19
                                        #-------------------------------------------------
                                        #
                                        # Project created by QtCreator 2018-08-20T09:12:54
                                        #
                                        #-------------------------------------------------
                                        
                                        QT       += core gui widgets
                                        
                                        TARGET = help
                                        TEMPLATE = app
                                        
                                        # library for theme
                                        unix:!macx: LIBS += -lcprime
                                        unix:!macx: LIBS += -lcsys
                                        
                                        SOURCES += \
                                            main.cpp \
                                            help.cpp
                                        
                                        HEADERS += \
                                            help.h
                                        
                                        FORMS += \
                                            help.ui
                                        
                                        RESOURCES += \
                                            icons.qrc
                                        
                                        # Disable warnings, enable threading support and c++11 
                                        CONFIG += thread silent build_all c++11
                                        
                                        # Disable Debug on Release
                                        # CONFIG(release):DEFINES += QT_NO_DEBUG_OUTPUT
                                        
                                        # Build location
                                        
                                        BUILD_PREFIX = $$(CA_BUILD_DIR)
                                        
                                        isEmpty( BUILD_PREFIX ) {
                                                BUILD_PREFIX = ./build
                                        }
                                        
                                        MOC_DIR       = $$BUILD_PREFIX/moc-qt5
                                        OBJECTS_DIR   = $$BUILD_PREFIX/obj-qt5
                                        RCC_DIR	      = $$BUILD_PREFIX/qrc-qt5
                                        UI_DIR        = $$BUILD_PREFIX/uic-qt5
                                        
                                        
                                        unix {
                                                isEmpty(PREFIX) {
                                                        PREFIX = /usr
                                                }
                                                BINDIR = $$PREFIX/bin
                                        
                                                target.path = $$BINDIR
                                        
                                                desktop.path = $$PREFIX/share/applications/
                                                desktop.files = "Help CoreApps.desktop"
                                        
                                                icons.path = $$PREFIX/share/coreapps/icons/
                                                icons.files = icons/Help.svg
                                        
                                                INSTALLS += target icons desktop
                                        }
                                        
                                        DEFINES += QT_DEPRECATED_WARNINGS
                                        DEFINES += "HAVE_POSIX_OPENPT"
                                        

                                        This is the .pro file of my application.
                                        And my 1st library

                                        QT       += widgets core network gui charts concurrent dbus
                                        
                                        TARGET = csys
                                        TEMPLATE = lib
                                        
                                        # disable all build warnings
                                        CONFIG += silent warn_on static
                                        
                                        # Disable Debug on Release
                                        #CONFIG(release):DEFINES += QT_NO_DEBUG_OUTPUT
                                        
                                        VERSION = 1.0.10
                                        DEFINES += LIBCSYS_LIBRARY
                                        
                                        HEADERS += \
                                            csys/cpu_info.h \
                                            csys/disk_info.h \
                                            csys/memory_info.h \
                                            csys/network_info.h \
                                            csys/process.h \
                                            csys/process_info.h \
                                            csys/system_info.h \
                                            csys/command_util.h \
                                            csys/file_util.h \
                                            csys/format_util.h \
                                            csys/battery.h \
                                            csys/info_manager.h \
                                            csys/upower.h \
                                            csys/udisks2.h \
                                            libcsys_global.h
                                        
                                        SOURCES += \
                                            csys/cpu_info.cpp \
                                            csys/disk_info.cpp \
                                            csys/memory_info.cpp \
                                            csys/network_info.cpp \
                                            csys/process.cpp \
                                            csys/process_info.cpp \
                                            csys/system_info.cpp \
                                            csys/command_util.cpp \
                                            csys/file_util.cpp \
                                            csys/format_util.cpp \
                                            csys/battery.cpp \
                                            csys/info_manager.cpp \
                                            csys/upower.cpp \
                                            csys/udisks2.cpp
                                        
                                        MOC_DIR			= ../build/moc
                                        OBJECTS_DIR		= ../build/obj
                                        RCC_DIR			= ../build/qrc
                                        UI_DIR			= ../build/uic
                                        
                                        unix {
                                                isEmpty(PREFIX) {
                                                        PREFIX = /usr
                                                }
                                        
                                                INSTALLS	+= target includes
                                                CONFIG		+= create_pc no_install_prl link_pkgconfig
                                                contains(DEFINES, LIB64): target.path = $$INSTALL_PREFIX/lib64
                                                else: target.path = $$INSTALL_PREFIX/lib
                                        
                                                target.path			= $$PREFIX/lib/
                                                includes.files	                = libcsys_global.h csys/*.h
                                                includes.path		        = $$PREFIX/include/csys
                                        
                                                QMAKE_PKGCONFIG_NAME = libcsys
                                                QMAKE_PKGCONFIG_DESCRIPTION = Library for coreapps
                                                QMAKE_PKGCONFIG_PREFIX  = $$INSTALL_PREFIX
                                                QMAKE_PKGCONFIG_LIBDIR  = $$target.path
                                                QMAKE_PKGCONFIG_INCDIR  = $$includes.path
                                                QMAKE_PKGCONFIG_VERSION = $$VERSION
                                                QMAKE_PKGCONFIG_DESTDIR = pkgconfig
                                        }
                                        

                                        And 2nd Library is

                                        QT       += widgets core gui
                                        
                                        TARGET    = cprime
                                        TEMPLATE  = lib
                                        
                                        # disable all build warnings
                                        CONFIG   += silent warn_on thread silent build_all c++11
                                        
                                        DEFINES  += LIBCPRIME_LIBRARY
                                        
                                        INCLUDEPATH += ./cprime/
                                        DEPENDPATH  += ./cprime/
                                        
                                        # Disable Debug on Release
                                        #CONFIG(release):DEFINES += QT_NO_DEBUG_OUTPUT
                                        
                                        VERSION  = 1.1.1
                                        DEFINES += LIBCPRIME_LIBRARY
                                        
                                        MOC_DIR			= ../build/moc
                                        OBJECTS_DIR		= ../build/obj
                                        RCC_DIR			= ../build/qrc
                                        UI_DIR			= ../build/uic
                                        
                                        unix {
                                                isEmpty(PREFIX) {
                                                        PREFIX = /usr
                                                }
                                        
                                                INSTALLS	 += target includes data themefiles
                                                CONFIG		 += create_pc no_install_prl link_pkgconfig
                                                contains(DEFINES, LIB64): target.path = $$INSTALL_PREFIX/lib64
                                                else: target.path = $$INSTALL_PREFIX/lib
                                        
                                                target.path	  = $$PREFIX/lib/
                                        
                                                includes.files    = cprime/*.h libcprime_global.h
                                                includes.path     = $$PREFIX/include/cprime/
                                        
                                                data.path         = $$PREFIX/share/coreapps/docs
                                                data.files        = docs/Changelog docs/LICENSE docs/To-Do.txt
                                        
                                                themefiles.path   = $$PREFIX/share/coreapps/Theme
                                                themefiles.files  = style/*.qss style/*.ini
                                        
                                                QMAKE_PKGCONFIG_NAME        = libcprime
                                                QMAKE_PKGCONFIG_DESCRIPTION = Library for coreapps
                                                QMAKE_PKGCONFIG_PREFIX      = $$INSTALL_PREFIX
                                                QMAKE_PKGCONFIG_LIBDIR      = $$target.path
                                                QMAKE_PKGCONFIG_INCDIR      = $$includes.path
                                                QMAKE_PKGCONFIG_VERSION     = $$VERSION
                                                QMAKE_PKGCONFIG_DESTDIR     = pkgconfig
                                        }
                                        
                                        HEADERS += \
                                            cprime/globalfunctions.h \
                                            cprime/utilities.h \
                                            cprime/settingsmanage.h \
                                            cprime/bookmarkmanage.h \
                                            cprime/bookmarkdialog.h \
                                            libcprime_global.h \
                                        
                                        SOURCES += \
                                            cprime/globalfunctions.cpp \
                                            cprime/utilities.cpp \
                                            cprime/settingsmanage.cpp \
                                            cprime/bookmarkmanage.cpp \
                                            cprime/bookmarkdialog.cpp
                                            
                                        FORMS += \
                                            cprime/bookmarkdialog.ui
                                        
                                        S 1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #20

                                          Did you check whether you have these libraires in multiple places on your system ?

                                          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

                                          • Login

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