So, I'm a total Newbie when it comes to Linux and FreeOrion was one of the first things I tried to install after building a Linux box out of my laptop. I'm running Ubuntu 12.04 LTS, Memory 7.7 GiB, Processor Intel® Core™ i7-3520M CPU @ 2.90GHz × 4 , OS type 64-bit. I tried first to download the package but it wouldn't run so I followed forums and such looking for how to compile it myself which seemed to be the answer everyone gave. Doing my best to follow http://www.freeorion.org/index.php/Compile_In_Linux did me little good as some of the packages it referanced are out of date and hence some of the code it told me to imput did nothing or little good (the whole section on compiling Ogre for example, typing aclocal only asked for arguments that I didn't know, leading to invalid commands after.). Still I trudged on and compiled Ogre through their documents, but seemed to hit a wall as to how to pursue from there. Fortunately on Day 3 of Linix I found this forum string.
Big thanks to kempiu for providing a much clearer path to trod. Following the steps I understood I was able to get to the point where I could make.
Unfortunately I must have missed something somewhere because make comes back with an error around 80% of the way (sometimes 79 sometimes 81 as I've tried multiple times).
[ 79%] Building CXX object client/human/CMakeFiles/freeorion.dir/__/__/UI/CombatCamera.cpp.o
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In constructor ‘CombatCamera::CombatCamera(Ogre::Camera&, Ogre::SceneManager*, Ogre::SceneNode*)’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:93:23: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:93:46: error: incomplete type ‘Ogre::Animation’ used in nested name specifier
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In member function ‘bool CombatCamera::Moving() const’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:99:28: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In member function ‘void CombatCamera::Update(Ogre::Real)’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:174:27: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In member function ‘void CombatCamera::LookAtPositionImpl(const Ogre::Vector3&, Ogre::Real)’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:378:27: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In member function ‘void CombatCamera::ZoomImpl(Ogre::Real)’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:394:23: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:409:27: error: invalid use of incomplete type ‘struct Ogre::Animation’
/usr/local/include/OGRE/OgrePrerequisites.h:119:11: error: forward declaration of ‘struct Ogre::Animation’
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp: In member function ‘bool CombatCamera::Moving() const’:
/home/bowen/freeorion_0_43/FreeOrion/UI/CombatCamera.cpp:99:70: warning: control reaches end of non-void function [-Wreturn-type]
make[2]: *** [client/human/CMakeFiles/freeorion.dir/__/__/UI/CombatCamera.cpp.o] Error 1
make[1]: *** [client/human/CMakeFiles/freeorion.dir/all] Error 2
make: *** [all] Error 2
I've played the game plenty of times on Windows and never knew there was a "Combat Camera" as usually I would just hit a system and my ships would disappear and/or their ships would dissapear, and I would be informed of the resulting combat in the SitRep.
Either way, I can't get a make command to finish because I don't know what to do about this. Attempts to google it have lead me nowhere, but maybe pointing back to a problem with Boost (which appears to be 1.48).
I am happy for the progress, but am a bit disappointed that I'm so incompetent in this area. A few times today (being the 4th day of Linux) I considered just going back to Windows 7 and crying quietly to myself, but before I did that I thought I'd go beyond just reading what others have asked and actually putting the question out there myself. Is there any suggestions anybody here can make to help with my dilemma?
Sincere Thanks,
Bowen
Compile Problems
Moderator: Oberlus
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Compile Problems
The "Combat Camera" is part of the Ogre 3D rendering system that is used in the effectively-abandoned partially implemented 3D combat system for FreeOrion. It's not actually used in the currently playable game, though one can (or could previously... it might not be working still) run a tech demo to show the progress on that 3D rendering system.Bowen wrote:I've played the game plenty of times on Windows and never knew there was a "Combat Camera"...
I don't know if it's relevant to your current issues, but I suspect you might need to use a newer version of boost than 1.48.Bowen wrote:Either way, I can't get a make command to finish because I don't know what to do about this. Attempts to google it have lead me nowhere, but maybe pointing back to a problem with Boost (which appears to be 1.48).
Also, what SVN version of FreeOrion are you attempting to build, and what version of Ogre are you using?
Re: Compile Problems
As a reference point it builds fine here with Gentoo using:Geoff the Medio wrote:I don't know if it's relevant to your current issues, but I suspect you might need to use a newer version of boost than 1.48.
Also, what SVN version of FreeOrion are you attempting to build, and what version of Ogre are you using?
Boost: 1.52.0-r6
Ogre: 1.8.1
Last version I've built so far: 7002.
Re: Compile Problems
If you started out with the main Ubuntu instructions and then swapped to kemiu's instructions you may have wound up with incompatible boost and ogre versions. If you installed a version of ogre via the ubuntu repositories and then built another ogre version then cmake might be finding the old version -- you can run ccmake . and press the 't' key to get a detailed view of the info cmake came up with and see what version of Ogre it's pointing to. You also might need to delete the freeorion CMakeCache.txt file and rerun cmake.
I also took a pass at updating the Linux compile instructions, particularly in regards to the Ubuntu section and a little for Ogre and Bullet, so you might want to review them again. (Adrian, it would probably be good if you could double check the portions (Ubuntu, Ogre, Bullet) I edited. I noticed you had updated a portion of that overall page, but it seems there is still a lot of stale and distracting info there; if you ever have time to do a more major revision on it that would probably be quite helpful).
I also took a pass at updating the Linux compile instructions, particularly in regards to the Ubuntu section and a little for Ogre and Bullet, so you might want to review them again. (Adrian, it would probably be good if you could double check the portions (Ubuntu, Ogre, Bullet) I edited. I noticed you had updated a portion of that overall page, but it seems there is still a lot of stale and distracting info there; if you ever have time to do a more major revision on it that would probably be quite helpful).
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0
- adrian_broher
- Programmer
- Posts: 1156
- Joined: Fri Mar 01, 2013 9:52 am
- Location: Germany
Re: Compile Problems
Sure.Dilvish wrote:I also took a pass at updating the Linux compile instructions, particularly in regards to the Ubuntu section and a little for Ogre and Bullet, so you might want to review them again. Adrian, it would probably be good if you could double check the portions (Ubuntu, Ogre, Bullet) I edited.
Well, there are several wordings I don't like. There too many 'may', 'hopefully' and 'shoulds' for my liking. This sounds like we don't even have a clue or confidence on how to compile/run our own software on the platforms in question.
You have added libtiff4-devel to the dependency list, but don't add it to the apt commandline.
Why are boost 1.51 and python 2.7 preferred? Do we need a feature from this versions? Than those version are the baseline anyway.
About the 'Ubuntu Lucid Lynx' article: Just delete it. It's outdated and wrong and doesn't work with the current code. Also 10.4 went EOL a year ago for desktops.
The 'previous instructions' for compiling OGRE are useless, they dumped the autoconf build system many moons ago in favor of CMake and the minimal OGRE we require doesn't contain any autoconf components.
The 'GiGi' section should go away. The current code builds it automatically, we host it and modified it already in a way that it is incompatible with GiGi upstream. We shouldn't bother the user with that.I noticed you had updated a portion of that overall page, but it seems there is still a lot of stale and distracting info there; if you ever have time to do a more major revision on it that would probably be quite helpful.
Also I seriously doubt that we are in charge of explaining the user how to build the dependencies. Documenting this is a task of the corresponding upsteam. Just tell the use what we need and point to the upstream documentation. One exception for this is to explain that FO needs to use the same boost version as Ogre.
Also there are some points that don't belong into the 'Compiling In Linux' article. Using SVN? The preferred editor to hack FO? Debugging? Creating a backtrace? Wat? Well okay, how to create a 'debug' or 'release' build should be documented. Which reminds me that the current article exactly document zero of the availble CMake variables to configure the build properly.
In general the 'how to compile' article should look like this: http://freeorion.org/index.php/User:AndrewW/Gentoo
Resident code gremlin
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz
Attached patches are released under GPL 2.0 or later.
Git author: Marcel Metz
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Compile Problems
It may have changed, but previously Python 3 wouldn't work with Boost-Python. I don't recall if there was a reason 2.7 was needed vs. 2.6.adrian_broher wrote:Why are boost 1.51 and python 2.7 preferred?
Re: Compile Problems
Sure, those words were there largely because in many cases I wasn't entirely sure of the version requirements and that's why I requested some extra review (I was a bit borderline on whether to attempt any edits at all, but decided it would probably still be at least a marginal improvement and could help move the process along). In the cmake files I could only find a requirement for boost 1..47 and python2, but I had some recollections of past discussions of additional version requirements and tried to note the ones I was more sure of.adrian_broher wrote:There too many 'may', 'hopefully' and 'shoulds' for my liking. This sounds like we don't even have a clue or confidence on how to compile/run our own software on the platforms in question.
It was already in the apt commandline (the second line, 2nd-to-last).You have added libtiff4-devel to the dependency list, but don't add it to the apt commandline.
Regarding python, though we don't appear to me to enforce a requirement other than python2, my recollection is that our actual python code includes some python 2.5 constructs. I try to avoid things that I know are specific to 2.7 (I suppose I succeed or we'd likely hear of problems), but looking to the future I wanted to at least start encouraging the use of 2.7 (for coding flexibility and since 2.7 provides a much better base for an eventual transition to 3.x). If you think we should just leave it as requiring 2.5.x - 2.7.x I won't argue. Regarding boost, I had recalled some concern about compatibility with serialization of earlier versions, but can't find anything specific beyond the 1.47 req so I took out the reference to 1.51.Why are boost 1.51 and python 2.7 preferred? Do we need a feature from this versions? Than those version are the baseline anyway.
I removed the link to it & strengthened the 'stale' assertion at the beginning of the article, but I don't know how to actually delete the article.About the 'Ubuntu Lucid Lynx' article: Just delete it...
Removed.The 'previous instructions' for compiling OGRE are useless...
I now took out most of it & trimmed your note a bit.The 'GiGi' section should go away....
Sounds fine; I took a pass at cleaning this up.Also I seriously doubt that we are in charge of explaining the user how to build the dependencies. Documenting this is a task of the corresponding upsteam. Just tell the use what we need and point to the upstream documentation. One exception for this is to explain that FO needs to use the same boost version as Ogre.
Sounds fine to me. Particularly regarding the available CMake variables to help configure the build I think you're in the best position to write that up, when you have a chance.Also there are some points that don't belong into the 'Compiling In Linux' article. Using SVN? The preferred editor to hack FO? Debugging? Creating a backtrace? Wat? Well okay, how to create a 'debug' or 'release' build should be documented. Which reminds me that the current article exactly document zero of the availble CMake variables to configure the build properly.
I slightly cleaned up the Bullet instructions, but don't recall if the mentioned symlinks are still required so please double check that section.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0
Re: Compile Problems
Hopefully that hasn't changed any, still working here at least. But if something has changed let me know and I can update it.adrian_broher wrote:In general the 'how to compile' article should look like this: http://freeorion.org/index.php/User:AndrewW/Gentoo
Re: Compile Problems
Probably just remove everything and save that way for the wiki.Dilvish wrote:'stale' assertion at the beginning of the article, but I don't know how to actually delete the article.
The symlinks where no longer required at one point when I updated the gentoo instructions.Dilvish wrote:'I slightly cleaned up the Bullet instructions, but don't recall if the mentioned symlinks are still required so please double check that section.