windowsdlldumpbindepends

What is meant by an exe being dynamically compiled?


Came across the following paragraph from a page on the MySQL website here:

You can write plugins in C or C++ (or another language that can use C calling conventions). Plugins are loaded and unloaded dynamically, so your operating system must support dynamic loading and you must have compiled the calling application dynamically (not statically). For server plugins, this means that mysqld must be compiled dynamically.

What is meant by dynamical compiling? I know about dynamical linking, but I'm not sure what they meant with dynamical compiling.

Also, on Windows 10 (x64), how can I assure that an exe has been compiled dynamically? Is it possible to figure it out from the output of dumpbin? Here's the dumpbin output for mysqld.exe (version 5.7):

enter image description here

Note: I reviewed this old question which did not provide me with that much information. The depends tool it suggests is no longer on Windows.


Solution

  • Compiling dynamically simply means that you are compiling the code such that the compiled output is suitable for dynamic linking.

    On Windows, the process of creating as DLL necessarily compiles it such that it's suitable for dynamic linking because DLLs are always dynamically linked.

    I believe that most platforms today always compile dynamically and produce relocatable output, even if they're subsequently linked statically.