Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Android App Development include LDAP on MAC OS X
Forum Updated to NodeBB v4.3 + New Features

Android App Development include LDAP on MAC OS X

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
25 Posts 4 Posters 5.2k 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.
  • M Offline
    M Offline
    mkmp29
    wrote on last edited by mkmp29
    #5
    This post is deleted!
    1 Reply Last reply
    0
    • M Offline
      M Offline
      mkmp29
      wrote on last edited by
      #6

      My error is:

      :-1: error: error: cannot find -lldap
      

      I think there is mistake in the .pro file:

      The Filestructure is:

      - *.pro
      - lib
        - compiled
          - OpenLDAP
             - lib
             - include 
             - *
      - other files 
      

      in the lib directory are these files:

      liblber-2-devel.so.0       libldap.la
      liblber-2-devel.so.0.0.0   libldap.so
      liblber.a                  libldap_r-2-devel.so.0
      liblber.la                 libldap_r-2-devel.so.0.0.0
      liblber.so                 libldap_r.a
      libldap-2-devel.so.0       libldap_r.la
      libldap-2-devel.so.0.0.0   libldap_r.so
      libldap.a
      
      1 Reply Last reply
      0
      • sierdzioS Offline
        sierdzioS Offline
        sierdzio
        Moderators
        wrote on last edited by
        #7

        @mkmp29 said in Android App Development include LDAP on MAC OS X:

        -L lib/compiled/OpenLDAP/lib -lldap

        There should be no space between '-L' and your library search path.

        (Z(:^

        1 Reply Last reply
        1
        • M Offline
          M Offline
          mkmp29
          wrote on last edited by mkmp29
          #8

          @mkmp29 said in Android App Development include LDAP on MAC OS X:

          INCLUDEPATH += lib/compiled/OpenLDAP/include
          LIBS += -L lib/compiled/OpenLDAP/lib -lldap
          ANDROID_EXTRA_LIBS += lib/compiled/OpenLDAP/lib/libldap.so

          Didn't work either. I just get the message for multiple lib function:

          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::~LDAPAuth(): error: undefined reference to 'ldap_unbind'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::~LDAPAuth(): error: undefined reference to 'ldap_unbind'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::checkStatus(QString const&, int): error: undefined reference to 'ldap_err2string'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::checkStatus(QString const&, int): error: undefined reference to 'ldap_err2string'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_initialize'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_initialize'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_set_option'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_set_option'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_start_tls_s'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_start_tls_s'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::init(): error: undefined reference to 'ldap_simple_bind_s'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_search_ext_s'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_first_entry'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_get_dn'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_first_attribute'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_get_values'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_next_attribute'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_memfree'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_next_entry'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_msgfree'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::search(QString const&): error: undefined reference to 'ldap_msgfree'
          ldapAuth.o:ldapAuth.cpp:function LDAPAuth::authentificate(QString const&, QString const&): error: undefined reference to 'ldap_simple_bind_s'
          collect2: error: ld returned 1 exit status
          

          Looks like the library is compiled wrong ?

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

            Hi,

            Did you check the x86 vs x86_64 architecture for your library ?

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

            M 2 Replies Last reply
            0
            • SGaistS SGaist

              Hi,

              Did you check the x86 vs x86_64 architecture for your library ?

              M Offline
              M Offline
              mkmp29
              wrote on last edited by
              #10

              @SGaist
              I can only compile the library for the arm architecture. Other architecture fail because they can't find libraries...

              Is there a better solution than compile the library for every architecture of the enddevice?

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

                No there's not.

                The only alternative is to check whether your targets already have them available in their root filesystem and re-use them.

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

                M 1 Reply Last reply
                0
                • SGaistS SGaist

                  No there's not.

                  The only alternative is to check whether your targets already have them available in their root filesystem and re-use them.

                  M Offline
                  M Offline
                  mkmp29
                  wrote on last edited by
                  #12
                  This post is deleted!
                  1 Reply Last reply
                  0
                  • SGaistS SGaist

                    Hi,

                    Did you check the x86 vs x86_64 architecture for your library ?

                    M Offline
                    M Offline
                    mkmp29
                    wrote on last edited by
                    #13

                    @SGaist

                    I can compile the application and push it to the virtual device. But i get the error:

                    W System.err: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "liblber-2-devel.so.0" not found
                    

                    This file is contained in the lib folder of my cross compiled library. I read a little bit and tried to load the library during runtime with the QT Object: QLibrary and the function load. But it didnt work.

                    this is the part of my .pro file

                    ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap.so
                    ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber.so
                    ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r.so
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber-2-devel.so.0
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber-2-devel.so.0.0.0
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap-2-devel.so.0
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap-2-devel.so.0.0.0
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r-2-devel.so.0
                    #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r-2-devel.so.0.0.0
                    
                    LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -lldap
                    
                    INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    
                    PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap.a
                    LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -llber
                    
                    INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    
                    PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber.a
                    
                    LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -lldap_r
                    
                    INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include
                    
                    PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r.a
                    

                    Library loading at the beginning of the main method.

                        QLibrary ldap("ldap");
                        QLibrary ldap_r("ldap_r");
                        QLibrary lber("lber");
                    
                        if(!ldap.load() || !lber.load() || !ldap_r.load()){
                            qDebug() << "Failed loading library";
                        }
                    
                    

                    The libraries that are contained in the lib folder are listed above

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

                      IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.

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

                      M 2 Replies Last reply
                      1
                      • SGaistS SGaist

                        IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.

                        M Offline
                        M Offline
                        mkmp29
                        wrote on last edited by mkmp29
                        #15
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • SGaistS SGaist

                          IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.

                          M Offline
                          M Offline
                          mkmp29
                          wrote on last edited by
                          #16

                          @SGaist said in Android App Development include LDAP on MAC OS X:

                          IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.

                          I removed the links from the libraries, deleted the links and renamed the lib to its original name, but the error still appears...

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

                            Which one ? The missing symbol or the dlopen error ?

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

                            M 1 Reply Last reply
                            0
                            • SGaistS SGaist

                              Which one ? The missing symbol or the dlopen error ?

                              M Offline
                              M Offline
                              mkmp29
                              wrote on last edited by
                              #18

                              @SGaist

                              the dlopen error.

                              I also tried to copy the versioned libs into the same folder in the android libs directory. But it didn't work.

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

                                Why are you dlopening the library on Android rather than linking to it ?

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

                                M 1 Reply Last reply
                                0
                                • SGaistS SGaist

                                  Why are you dlopening the library on Android rather than linking to it ?

                                  M Offline
                                  M Offline
                                  mkmp29
                                  wrote on last edited by
                                  #20

                                  @SGaist

                                  this does the the library... I only include the library into my project

                                  SGaistS 1 Reply Last reply
                                  0
                                  • M mkmp29

                                    @SGaist

                                    this does the the library... I only include the library into my project

                                    SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #21

                                    @mkmp29 said in Android App Development include LDAP on MAC OS X:

                                    this does the the library...

                                    Can you rephrase that please ? I don't understand what it means at all.

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

                                    sierdzioS 1 Reply Last reply
                                    0
                                    • SGaistS SGaist

                                      @mkmp29 said in Android App Development include LDAP on MAC OS X:

                                      this does the the library...

                                      Can you rephrase that please ? I don't understand what it means at all.

                                      sierdzioS Offline
                                      sierdzioS Offline
                                      sierdzio
                                      Moderators
                                      wrote on last edited by
                                      #22

                                      @SGaist said in Android App Development include LDAP on MAC OS X:

                                      @mkmp29 said in Android App Development include LDAP on MAC OS X:

                                      this does the the library...

                                      Can you rephrase that please ? I don't understand what it means at all.

                                      If I get it right, he means that he links the LDAP library. That library, however, uses dlopen internally to access yet another library.

                                      (Z(:^

                                      M 1 Reply Last reply
                                      0
                                      • sierdzioS sierdzio

                                        @SGaist said in Android App Development include LDAP on MAC OS X:

                                        @mkmp29 said in Android App Development include LDAP on MAC OS X:

                                        this does the the library...

                                        Can you rephrase that please ? I don't understand what it means at all.

                                        If I get it right, he means that he links the LDAP library. That library, however, uses dlopen internally to access yet another library.

                                        M Offline
                                        M Offline
                                        mkmp29
                                        wrote on last edited by
                                        #23

                                        @sierdzio

                                        yes thats right.

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

                                          Then this stackoverflow thread might help.

                                          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

                                          • Login

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