Boost needs a boost... really

Questions, problems and discussion about compiling FreeOrion.

Moderator: Oberlus

Post Reply
Message
Author
elof_sam
Space Krill
Posts: 1
Joined: Sun Aug 15, 2010 3:57 am

Boost needs a boost... really

#1 Post by elof_sam »

Problem:
I've tried everything I can think of to get Gigi to compile, but it's been a few hours that no matter what I do, it keeps spewing me errors while building CMakeFiles/serialization.dir/saveload.cpp.o about undefined references to boost::archive::detail::shared_ptr_helper::append(boost::shared_ptr<void const> const&).

What I have tried:
2 different versions of boost, 1 off the site and the other from my distro's repositories.

In details:
When I installed from the site (which I did at first) cmake wasn't finding it. After messing around with proper locations and lots of googling, I gave up that route, did a "find -name *boost*" in my bash and removed anything remotly boosty. I then installed from the repositories. It worked only mildly at first, but after uninstalling an reinstalling all I could that was boost related, everything was now explicitly defined as version 1.42. After trying a few times to compile and clean, and looking everywhere I could about those shared_ptr_helper::append errors, I found out that my boost install did not include that file at it's expected location. So I googled and got it there, but no change. I later found the proper file one level above, which didn't help whatsoever. I then found that my FindBoost.cmake wasn't searching for version 1.41 at all, but when I add "set(Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0")" the compile is a lot more unsteady, and still ends at the same result. I've also tried running at less jobs (-j4 in the log shown), but the crash occurs when there is only 1 process running and only improved stability when I had the additionnal versions in FindBoost. So I removed the line, and the file included is the output from that.

Possible things I've already considered:
- There is something wrong with shared_ptr_helper and it should be disabled : if so, I don't know how, I certainly would've tried.
- The linker isn't linking properly : if that was the case, why is there only one symbol that doesn't exist? I'm sure other methods of shared_ptr_helper are used at least once in gigi? No? In any case, that's what led me to the FindBoost.cmake file, which is supposed to be taking care of linking, right?
- My version of boost is broken : ... I did completely reinstall it, you know, and there's a new version after that one which is already rated as stable ... (for completion)
- I don't know what I'm doing : It might be the case, but after all the thing I googled around, I'd be pretty surprised to learn I'm completely unaware of the workings of boost and its "serialization" process...
- I have a VIRUS : Linux
- I'm using an outdated compiler : I'm currently using gcc 4.4.3, straight from my distro's repos...

What I would like:
A simple and curteous response. I've spent a lot of time trying to get this to work, and making this post as helpful as possible.
Attachments
Gigi_compile.txt
This is my bash output from a make command for gigi.
(11.41 KiB) Downloaded 106 times

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 13587
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Boost needs a boost... really

#2 Post by Geoff the Medio »

GiGi's saveload.cpp is in the tutorial directory. You can probably just remove that whole directory from the build (or disable tutorials if there is an option in CMake to do so) if you're not planning or don't need to look at the tutorials.

By "FindBoost.cmake wasn't searching for version 1.41 at all", did you mean version 1.42?

You might try using an earlier version of GCC... Various forum posts reference 4.3 as working.

Post Reply