1. put dclspec everywhere in your code
  2. Use the nice bindexplib utility from ROOT

example of option #2

We use this in Seattle to build our VS2005 projects. I've attached a log file for the compilation of astro.

The key is the special prelink step:

bindexplib -o ..\vcc80dbg\astro\symbols.def astro ..\vcc80dbg\astro\*.obj
lib  /def:..\vcc80dbg\astro\symbols.def  /out:..\vcc80dbg\astro.lib

These two commands produce astro.lib, containing the stubs to be linked when creating the dll, with a command like this:

link /DLL /OUT:"..\vcc80dbg\astro.dll" ..\vcc80dbg\astro.lib [...]

with the [...] for the link options, and a list of all the lib files that the module depends on.

Thus, sequence bindexplib-lib-link takes the set of object files, and creates a lib and dll.

  • No labels