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. Adding external library to my Qt application
Forum Updated to NodeBB v4.3 + New Features

Adding external library to my Qt application

Scheduled Pinned Locked Moved Mobile and Embedded
4 Posts 2 Posters 3.7k 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.
  • S Offline
    S Offline
    strekazoid
    wrote on last edited by
    #1

    I'm having problems adding a .lib to my Qt application. Using Qt SDK 1.1.4.

    I have a .lib file which I have to attach to my Qt app. So I've added following line to the .pro file:

    @LIBS += -L/lib -lmycustomlib.lib@

    For this I'm getting following error:

    @:-1: Running command: C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/tools/checklib.exe stdc++ --elf C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/mycustomlib.lib C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/qtmain.lib
    checklib: error: couldn't open file.@

    Ok. Now I copy my .lib to the ...armv5/usdeb. Compiling, and it seems that .lib file is found now. But still all the methods from the .lib are not found:

    @:-1: Running command: C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/tools/checklib.exe stdc++ --elf C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/myapplib.lib C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/qtmain.lib
    Running command: C:/QtSDK/Symbian/tools/gcce4/bin/arm-none-symbianelf-g++.exe -Wl,-Ttext,0x8000 -Wl,--no-undefined -nodefaultlibs -Wl,-shared -Wl,-Tdata,0x400000 -Wl,--default-symver '-Wl,-soname=MyAppApp1{000a0000}[eae1915e].exe' -Wl,--entry=_E32Startup -Wl,-u,_E32Startup,C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/eexe.lib -o C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/MyAppApp1.exe.sym -Wl,-Map=C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/MyAppApp1.exe.map @C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/build/myappapp1/c_98d27d3889984643/MyAppApp1_exe/armv5/udeb/MyAppApp1_udeb_objects.via --start-group C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/usrt3_1.lib --end-group C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/usrt3_1.lib C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/mycustomlib.lib C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/qtmain.lib C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/euser.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/cone.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/ws32.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/etel3rdparty.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/libstdcppv5.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/QtGui.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/QtCore.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/libpthread.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/libc.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/libm.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/libdl.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/stdnew.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/drtaeabi.dso C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/lib/dfpaeabi.dso -lsupc++ -lgcc
    c:/qtsdk/symbian/tools/gcce4/bin/../lib/gcc/arm-none-symbianelf/4.4.1/../../../../arm-none-symbianelf/bin/ld.exe: warning: C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/release/armv5/udeb/usrt3_1.lib(ucppinit.o) uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail
    C:/QtSDK/Symbian/SDKs/Symbian3Qt474/epoc32/build/myappapp1/c_98d27d3889984643/MyAppApp1_exe/armv5/udeb/mainwindow.o: In function MainWindow': C:/Users/Alex/Qt_projects/MyAppApp1/mainwindow.cpp:41: undefined reference to MyAppLib::WindowToForeground()'
    ...
    collect2: ld returned 1 exit status@

    What do I do wrong? Tried that with dll, and got the same result.

    1 Reply Last reply
    0
    • F Offline
      F Offline
      favoritas37
      wrote on last edited by
      #2

      What kind of library is it? For what platform is it compiled for? I ask this because usually the library files for the Symbian platform have .dso types.

      Generally for a library to be visible from the program of yours, you need the following steps:

      1. put the library's header files under epoc32/include
      2. put the .dso files under epoc32/release/armv5/lib
      3. Put the dll files. Here actually there are 2 ways, depending what the library supports.
      • If the library provides a .dll file then you copy it at epoc32/release/gcce/udeb (or urel)
      • If the library provides a .sis file then you copy it somewhere that you know and can later on access it.
      1. add in the .pro file:
      • in the case of dlls
        @
        LIBS += -lmycustomlib
        symbian{
        addFiles.sources = mycustomlib.dll
        addFiles.path = !:\sys\bin
        DEPLOYMENT += addFiles
        }
        @
      • in the case of the .sis file (where instead of 0x00000000 you place the UUID of the .sis file):
        @
        LIBS += -lmycustomlib
        symbian{
        customrules.pkg_prerules =
        ";mycustomlib"
        "@"$(EPOCROOT)Epoc32/InstallToDevice/mycustomlib.sisx",(0x00000000)"
        " "

      DEPLOYMENT += customrules
      }
      @

      5) include your headers...

      1 Reply Last reply
      0
      • S Offline
        S Offline
        strekazoid
        wrote on last edited by
        #3

        Thanks!

        The lib is compiled for Symbian. I got also dll and dso files, and I've put those according to your instructions. I can even see that my .dso file is included in the log from armv5\lib folder. But no effect so far, same "undefined reference" errors.

        1 Reply Last reply
        0
        • F Offline
          F Offline
          favoritas37
          wrote on last edited by
          #4

          Is the library defined in a specific namespace? If that is the case, you might have forgotten the using namespace.

          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