contrapsych
contrapsych

Reputation: 1949

Can't build Boost 64 bit dynamic libraries, only static

I have recently acquired Visual Studio 2010 through Dreamspark, so I can now compile 64 bit applications and libraries. I then compiled the Boost 1.47 libraries with Bjam using the following line for input.

.\b2 -a -d 0 -q -j 4 -d 0 --variant=debug,release --link=shared,static --threading=multi --address-model=32 --toolset=msvc-10.0

When I do, I get 4 of each library (static-debug, dynamic-debug, static-release, dynamic-release). After they are compiled, I move them into another directory called win32libs. I then use the exact same line to compile the 64 bit versions, but switch the address model to 64 (I know they are almost identical because I copy and past from the same text document I made to make compiling them easy). When I go into my stage directory after the 64 bit compilation, I only see .lib, no .dll. Is this an issue with what I'm doing, or is in some way, 64 bit dlls not supported?

Thanks

Upvotes: 4

Views: 8661

Answers (1)

Adam Mitz
Adam Mitz

Reputation: 6043

The options that change how Boost is compiled (as opposed to those that just control b2's execution) are called "features" and must not be preceeded by dashes on the command line. In your example the features are:

  • variant
  • link
  • threading
  • address-model
  • toolset

The libraries it generates will be named according to the library naming scheme for Boost on Windows. lib*.lib are static libraries; other*.lib are the import libs for the corresponding DLLs.

Upvotes: 6

Related Questions