[SOLVED] KDSoap & iOS



  • Hi all,

    I've been playing around with the KDSoap library several weeks now, recompiling and linking it to different executables on different platforms.

    So far so good, deployment on Win/Mac/Android/Debian and BB went out perfectly. Obviously, I had to set specific options in the .pro file and/or set some system variables.

    For what concerns iOS I've statically recompiled the library (".a" library) but I don't know how to correctly link it for deployment. Since this is my first "Qt on iOS" project I'm a little bit lost with this platform which is new to me. Cound someone point me to a comprehensive guide to the compilation and deployment on iOS (especially with the presence of external library)? That would be great.

    Any help is really appreciated. Thanks in advance.


  • Lifetime Qt Champion

    Hi,

    AFAIK, you don't have to do anything special, just link to it, the relevant code will be embedded in you executable so nothing particular to deploy.

    Hope it helps



  • I've linked to it the usual way (with the Qt Creator wizard). My app compiles correctly, hence it can find all the functions it depends on. However once I run the app, i.e. deploy is executed I receive an error. It seems to be a "cannot find image", sort of.

    As soon as I get to my office (probably tonight) I'll post information about the compilation of the library, the .pro file, as well as the specific error received.

    By the way, thanks for your reply SGaist! :)


  • Lifetime Qt Champion

    Then the interesting part is what library he can't find :)



  • It is KDSoap. That's why I supposed I'm screwing up something. :P

    For MacOSX I had to set an environment variable to let the runtime find the library. I thought that something similar would be necessary for the iOS version.

    That's it. :D


  • Lifetime Qt Champion

    Sounds like you are not linking to the static KDSoap then :)



  • Indeed I was not linking to the right library. Hence, yes, I was screwing up things. :D
    Basically I've put the static library in the same folder as the (x86) dynamic one but most importantly, the unix rule for library linking was overriding the ios one!

    What a noob move! :D

    My apologizes SGaist for the waste of time and thanks again! People on this forum are so active and kind that it is easy to get used to post questions, even the stupidest ones, like mine. :)

    Anyway, I leave a note for the dubious ones (like I was).

    1. Configure KDSoap as usual through its autoconf script (see the user guide on how to generate the script itself):

    @./autogen.py -static -release -qmake /opt/Qt5.3.0/5.3/ios/bin/qmake -hostqmake /opt/Qt5.3.0/5.3/clang_64/bin/qmake@

    1. Open the

    @variable.pri@

    file in the KDSoap root directory and remove the

    @-no-undefined@

    flag. It is not recognized by the compiler.

    1. Finally

    @make@

    and

    @make install@

    1. Copy the generated libkdsoap.a to your lib directory and add to your pro the line:

    @ios: LIBS += -L$$PWD/<pathTOlib> -lkdsoap@

    If you have rules for unix version just remember to add

    @!mac:!ios:@

    to them so that rule mixing is avoided.

    Ok, trivial information but from time to time also useful too. Especially to not-so-skillful people, like me. ;)


  • Lifetime Qt Champion

    Don't worry about that, it happens to everybody and OS X/iOS can be tricky :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.