
From the information you've given it sounds to me that there is a mismatch somewhere between the ABI in your project and the libraries. I'm guessing your using the VC 7.1 IDE to build. If so you might look into the directory VC7IDE in libs/serialization and compare the project properties with those
We run the test suite for both the static and dll versions of the serialization library. They work the same. you could do this yourself by invokeing runtest.bat from within the libs/serialization/test directory. projects with your own. Note, that I build all the tests in release mode as well as debug mode and everything builds and executes without problem on all compilers except for borland. Robert Ramey Topi Mäenpää wrote:
Hi,
I have struggled to get the boost libraries link into my application with no success so far. I was able to compile most of the demo programs with bjam, but it seems that only static linking is used there. I'm using the dynamic versions. The libraries compiled fine with MSVC.NET 7.1. However, whenever I try to link them to an application, every symbol seems to be undefined. I turned on the diagnostics to see that the automatic linking is happening (with the nonstandard preprocessor stuff). I also added the libraries to my project manually without success. The funny (?) thing is that the lib file has a definition for the "missing" functions, except for one minor difference. This is the mangled symbol the linker complains about:
__imp_?save@?$xml_oarchive_impl@Vxml_oarchive@archive@boost@@@archive@boost@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@Z
(Omitting namespaces this one decrypts to xml_oarchive_impl
::save(basic_string& const)) This is what seems to be in the library:
__imp_?save@?$xml_oarchive_impl@Vxml_oarchive@archive@boost@@@archive@boost@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
The only difference is that the library symbol contains a "D" and the linker is looking for "G" in a couple of places. I have found no way of going any further. Since the demos are built in debug mode and with static libraries, I found no useful information by inspecting the commands bjam uses in building them. Everything is just like I have in my own project.
I have defined BOOST_SERIALIZATION_DYN_LINK, if you happen to think about that. I even managed to link my app with mingw, but got strange run-time errors. Everything works fine with gcc on Linux.
Any advice?
-Topi-