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. MinGW: Plugin DLL not linking to application DLL
Forum Updated to NodeBB v4.3 + New Features

MinGW: Plugin DLL not linking to application DLL

Scheduled Pinned Locked Moved General and Desktop
1 Posts 1 Posters 956 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.
  • C Offline
    C Offline
    cmannett85
    wrote on last edited by
    #1

    Hi all,

    I'm currently trying to port my partially done application from Linux to Windows, it's gone fairly smoothly, but now I have hit a barrier. I have an application which depends on a main application DLL, and then numerous plugin DLLs which also depend on it. I also require some Boost libraries and GLEW.

    So I downloaded the last Qt 4 libraries and the latest MinGW, and built Boost and GLEW successfully. I then built my main application dll without a problem - except that it is 100MB bigger than the Linux debug version (more than double)!

    I then tried to build the first of my plugins, but suffered undefined reference errors for functions that reside in my main application DLL. Looking at the verbose linker output I can see that it is finding and successfully opening the DLL. Doing an objdump on the application DLL, I can see the 'missing' functions.

    However if I objdump the import library, it seems very empty. I expected to see every function/method listed, instead there's just 3 blocks very similar to this:

    @d000762.o: file format pe-i386

    SYMBOL TABLE:
    [ 0](sec 1)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 .text
    [ 1](sec 2)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 .idata$7
    [ 2](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 .idata$5
    [ 3](sec 4)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 .idata$4
    [ 4](sec 5)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000000 .idata$6
    [ 5](sec -1)(fl 0x00)(ty 0)(scl 3) (nx 0) 0x00000001 @feat.00
    [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 _qt_plugin_query_verification_data
    [ 7](sec 3)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 __imp__qt_plugin_query_verification_data
    [ 8](sec 0)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 __head_Syren_dll@

    But I also "read":http://www.mingw.org/wiki/CreateImportLibraries that libraries built using MinGW do not need an import library to link libraries also being built with MinGW, so I doubt that this is relevant.

    So just to recap, if I'm building a DLL and linking it to 3rd party DLLs (and Qt) - I have no problem; but linking a plugin DLL to my main application plugin fails because it can't see the symbols. I've never built on Windows using MinGW, so I presume I'm missing a step somewhere?

    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