wiki:AppLibraries

Version 6 (modified by davea, 8 years ago) (diff)

--

Dynamic library issues

Suppose your application uses a dynamic library, say vcomp90.dll. Recall that BOINC files are immutable. Hence there is a problem if either

  • You support multiple platforms (say, Win32 and Win64), and there are different versions of vcomp90.dll for each platform.
  • You need to update to new versions of the library.

One solution is to give the libraries names that encode the platform and version number, e.g. vcomp90_win32_1_17.dll and vcomp90_win64_1_17.dll. However, this may be infeasible because the name vcomp90.dll is embedded in your Makefiles and would be difficult to change.

A second solution, which doesn't require changing Makefiles, is to give the libraries different physical names but the same logical name. To do this, use something like the following in your version description file:

...
  <file>
    <physical_name>vcomp90_win32_1_17.dll</physical_name>
    <logical_name>vcomp90.dll</logical_name>
    <copy_file/>
...

The copy_file flag tells the BOINC to copy the library to the application's runtime directory.