On Wed, 18 Aug 2010, Oliver Koenig wrote:
Hello, when trying to update Boost from 1.43 to 1.44 in our code we noticed that in 1.44 we need to link to the serialization lib as soon as boost/graph/adjacency_list.hpp is included. Is this correct behavior or is this a bug?
To reproduce this it is sufficient to build the following test program hello_adjacency_list.cpp (tested with MSVC-9.0):
#include <iostream> #include
int main(){
std::cout << "hello adjacency_list\n";
return 0; }
With the boost build rule "exe hello_adjacency_list : hello_adjacency_list.cpp ;" compilation fails with: compile-c-c++ ..\..\..\bin\even_utils\test\graph\msvc-9.0\release\address-model-64\threading-multi\hello_adjacency_list.obj hello_adjacency_list.cpp msvc.link ..\..\..\bin\even_utils\test\graph\msvc-9.0\release\address-model-64\threading-multi\hello_adjacency_list.exe LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc90-mt-1_44.lib'
Using the build rule "exe hello_adjacency_list : hello_adjacency_list.cpp /boost//serialization : <link>shared<define>BOOST_SERIALIZATION_DYN_LINK ;" everything works fine.
That's odd -- I've been able to build applications using adjacency_list
with only the Boost headers and not linking any Boost libraries. This was
on Linux, though, so maybe your issue is auto-linking related. Shouldn't
auto-linking find the dynamic libraries automatically, though? Also, do
you have "using mpi ;" in your project-config.jam, or are you including