Sign in to follow this  
okonomiyaki

Boost's static libs - libboost-*

Recommended Posts

I was testing a technique with multithreading using Boost.Thread, and when I went to compile, I got this error:
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc80-mt-gd-1_33_1.lib'

I then found out that there are some static lib's I need to link with when using some of Boost's libraries. I've done a lot of looking and it seems like the only way to get these libraries is to setup the whole Boost.Build environment and build them, or set up my own VS2005 project. Why can't I just download these libs? I can't find much on this matter and I'm wondering if someone could explain this to me. Why does it need these static libraries in the first place, and where can I get them without building them?

Share this post


Link to post
Share on other sites
There are more compilers than just Visual C++. Boost works on a lot of different compilers and providing built libraries in all their variants would require a prohibitively large amount of space and bandwidth (my boost lib folder with boost built for I think three compilers plus a bit is 2.7Gb for example). Boost.Build really is a quick and painless process (at least it was for me). Just follow the instructions.

As to why some libraries need to be built: if a library needs some kind of global state then it cannot be provided purely as headers. There may also be other reasons why the developers of various Boost libraries felt they needed to be built as static libs.

Σnigma

Share this post


Link to post
Share on other sites
Quote:
Original post by Enigma
There are more compilers than just Visual C++. Boost works on a lot of different compilers and providing built libraries in all their variants would require a prohibitively large amount of space and bandwidth (my boost lib folder with boost built for I think three compilers plus a bit is 2.7Gb for example). Boost.Build really is a quick and painless process (at least it was for me). Just follow the instructions.

As to why some libraries need to be built: if a library needs some kind of global state then it cannot be provided purely as headers. There may also be other reasons why the developers of various Boost libraries felt they needed to be built as static libs.

Σnigma


Thanks. I mainly wanted to make sure I wasn't being stupid and missing some easy download somewhere. I'll setup Boost.Build then, and I understand the rational behind it. I'm just a little surprised someone hasn't hosted the lib files for windows, but maybe that's an indication of how easy Boost.Build is :)

Share this post


Link to post
Share on other sites
Not only that, but you can pick and choose which boost libs you want to include with Boost.Build. It really is much easier just to build your own than try and find a download with exactly the correct compiler and lib combo :)

Share this post


Link to post
Share on other sites
Quote:
Original post by MENTAL
Not only that, but you can pick and choose which boost libs you want to include with Boost.Build. It really is much easier just to build your own than try and find a download with exactly the correct compiler and lib combo :)


I understand the options, but when I'm using a popular compiler and I don't have time to learn a whole new build system, I really just wanted to download the libs. I just spent 2 hours figuring out Boost.Build because it didn't work out of the box; I never got it to work, something about missing paths. I'm using MSVC++ 2005 Express, and I did everything to add the PlatformSDK paths, but I was still getting "missing mspdb80.dll" when trying to compile with bjam. Who knows :)

Thank you so much Dr. Evil, that's exactly what I was looking for. If only I found that a couple hours ago!

Edit: Actually, I lied. I got it to work pretty easily with Visual Studio 7.1, but I couldn't get it for the life of me to compile 8.0 libs. I'm sure it was something with the paths, but anyway, I just don't have time to figure all this out when all I can do is download the 8.0 libs.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this