Boost library 1.47.1 build 'lib' prefix causing error LNK1104

I am having difficulty generating the correct boost.lib file to compile with the VS project I was given. It looks like after doing a full build using "b2.exe" from VS2010 command line I can only generate boost library files containing lib prefix.

When I come to compile my project, I get the following error message: "Error LNK1104: Unable to open file 'boost_signals-vc90-mt-1_47.lib'"

After going through the lib folder I can see that my boost build only generates "libboost_signals-vc90-mt-1_47.lib"

The boost documentation contains the following information about the lib prefix:

Lib Prefix: Except Microsoft Windows, every Boost library name starts with this line. On Windows, only regular static libraries use the lib prefix; import libraries and DLLs don't work.

So far I've tried using the following build options for the msvc-9.0 toolkit: "Assemblies like = full" "Link = static, general

Any advice on how I can generate the required .lib file is greatly appreciated. Many thanks.

+3


source to share


1 answer


link = static should be used whenever you link to the static version of the boost library. link = shared - should be used when you are dynamically linking to promote. It will add additional dependencies to boost dll.

You can also use link = static, shared to create both static and dynamic versions.



Define 'BOOST_ALL_DYN_LINK' in project controls as you reference boost. If it is defined it is dynamic binding, if not defined it is static binding.

0


source







All Articles