Boost logo

Boost-Build :

From: Jurko Gospodnetić (jurko.gospodnetic_at_[hidden])
Date: 2008-06-06 05:02:11


   Hi Andrej.

> It is the first time I compile on Windows, so I am
> sorry about the dum question, but what is the
> difference between .dll and .lib? Is the latter the
> static lib or .a in Linux?

   On Windows .lib extension typically identifies static libraries which
may then come two flavors. One are your typical static libraries (which
Boost identifies by adding an additional 'lib' prefix in front of their
name) containing full packaged functionality, and the other are import
libraries for .dlls (which Boost names exactly like their correspoding
.dll by with the .lib extension) which when linked to your executable
cause it to link dynamically to the corresponding .dll at startup.

   Typically the import library will be much smalled then the
corresponding actual standalone static library.

   So for example:

DLL : boost_date_time-vc71-mt-1_35.dll
Import lib: boost_date_time-vc71-mt-1_35.lib
Static lib: libboost_date_time-vc71-mt-1_35.lib

> msvc.link.dll
> ..\..\server\handlers\bin\msvc-9.0\release\threading-multi\speedo_handlers.dll
> msvc.link
> bin\msvc-9.0\release\threading-multi\speedosrvd.exe
> LINK : fatal error LNK1181: cannot open input file
> '..\..\server\handlers\bin\msvc-9.0\release\threading-multi\speedo_handlers.lib'
>
> call "F:\Program Files\Microsoft Visual Studio
> 9.0\VC\vcvarsall.bat" x86 >nul
> link /NOLOGO /INCREMENTAL:NO /subsystem:console
> /out:"bin\msvc-9.0\release\threading-multi\speedosrvd.exe"
> /LIBPATH:"\opt\lib"
> @"bin\msvc-9.0\release\threading-multi\speedosrvd.exe.rsp"
> if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%
> if exist
> "bin\msvc-9.0\release\threading-multi\speedosrvd.exe.manifest"
> (
> mt -nologo -manifest
> "bin\msvc-9.0\release\threading-multi\speedosrvd.exe.manifest"
> "-outputresource:bin\msvc-9.0\release\threading-multi\speedosrvd.exe;1"
> )

   Ok, here it is attempting to link statically to the dll's import
library (which is ok, since you presumably just listed the
speedo_handlers dll as a source for the speedosrvd target) but can not
seem to find it. Wierd...

   Could you post the following:

   - the exact Jamfile used
   - result of building with the -d2 option
   - listing of all the files found in your
..\..\server\handlers\bin\msvc-9.0\release\threading-multi folder after
a clean build

   Best regards,
     Jurko Gospodnetić


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk