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 4.9k 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
    #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
                                        • A Offline
                                          A Offline
                                          anji 0
                                          wrote on last edited by
                                          #25

                                          @mkmp29 I'm trying to integrate openldap libraries with windows, android and iOS applications built using Qt. Can you please help me with the steps for compiling the openldap libraries using GCC compiler? Thanks in advance.

                                          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