Options
- put dclspec everywhere in your code
- 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.