Jump to content
gw1500se

Installation on CentOS 7

Recommended Posts

Unless you specified an alternate install path, ./b2 install places the library under /usr/local/ (with the headers in ./include/boost and the compiled bits in ./lib)

(If you simply ran ./b2, then the compiled bits are in ./stage/lib respective to the b2 script, and you''ll have to copy things manually. It's probably best to use ./b2 install)

You might need to re-run update-workspaces.sh to register the correct files. The -mt suffix on the library names means that the libraries were compiled with multi-threading support. This appears to not be the default. Either way, update-workspaces.sh should find and link in the correct ones.

Share this post


Link to post
Share on other sites

Woo-hoo! More progress. I keep forgetting to rerun that script. Anyway, I made it past pyrogenesis.

SnapSplitterWindow.cpp
In file included from /usr/include/wx-2.8/wx/version.h:17:0,
                 from /usr/include/wx-2.8/wx/defs.h:134,
                 from /usr/include/wx-2.8/wx/wxprec.h:13,
                 from ../../../source/tools/atlas/AtlasUI/Misc/precompiled.h:48:
../../../source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp: In constructor ‘MapDialog::MapDialog(wxWindow*, MapDialogType, const wxIcon&)’:
../../../source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp:113:54: error: ‘Lm_Type’ was not declared in this scope
  filenameSizer->Add(new wxStaticText(this, wxID_ANY, _(m_Type == MAPDIALOG_SAVE ? "Map name: " : "Map path: ")), wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL));
                                                      ^
make[1]: *** [obj/AtlasUI_Release/MapDialog.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [AtlasUI] Error 2

I'm guessing I need better than wx-2.8.

Edited by gw1500se

Share this post


Link to post
Share on other sites
28 minutes ago, gw1500se said:

Woo-hoo! More progress. I keep forgetting to rerun that script. Anyway, I made it past pyrogenesis.


SnapSplitterWindow.cpp
In file included from /usr/include/wx-2.8/wx/version.h:17:0,
                 from /usr/include/wx-2.8/wx/defs.h:134,
                 from /usr/include/wx-2.8/wx/wxprec.h:13,
                 from ../../../source/tools/atlas/AtlasUI/Misc/precompiled.h:48:
../../../source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp: In constructor ‘MapDialog::MapDialog(wxWindow*, MapDialogType, const wxIcon&)’:
../../../source/tools/atlas/AtlasUI/CustomControls/MapDialog/MapDialog.cpp:113:54: error: ‘Lm_Type’ was not declared in this scope
  filenameSizer->Add(new wxStaticText(this, wxID_ANY, _(m_Type == MAPDIALOG_SAVE ? "Map name: " : "Map path: ")), wxSizerFlags().Align(wxALIGN_CENTER_VERTICAL));
                                                      ^
make[1]: *** [obj/AtlasUI_Release/MapDialog.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [AtlasUI] Error 2

I'm guessing I need better than wx-2.8.

What version of WxWidgets do you have ?

Yeah it should be 3+

Share this post


Link to post
Share on other sites

EPEL provides wxGTK3-devel which should do the trick.

You may have to explicitly tell the build system to use version 3.0. The easiest way to do this is to open ./build/premake/external_libs5.lua and replace the two instances of wx-config with wx-config-3.0

Re-run update-workspaces.sh and then make in the appropriate folders.

Share this post


Link to post
Share on other sites

You could also skip Atlas by passing the flag "--disable-atlas" to update-workspaces.sh

Edited by (-_-)

Share this post


Link to post
Share on other sites

Something has happened to the epel repostiory as it is no longer accessible. (Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). I'm trying to contact the epel team to see what is wrong. In any case what is the significance of bypassing Atlas? How does that effect the game?

Share this post


Link to post
Share on other sites
5 minutes ago, gw1500se said:

Something has happened to the epel repostiory as it is no longer accessible. (Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again). I'm trying to contact the epel team to see what is wrong. In any case what is the significance of bypassing Atlas? How does that effect the game?

Atlas is the map editor. As long as you don't want to create or edit maps you should be fine without it ;)

Share this post


Link to post
Share on other sites

Arrrggggggh! Got past Atlas but now I'm back to a boost problem:

Linking test
obj/test_Release/test_Color.o: In function `generic_category':
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
collect2: error: ld returned 1 exit status
make[1]: *** [../../../binaries/system/test] Error 1
make: *** [test] Error 2

 

Share this post


Link to post
Share on other sites

Atleast its just the tests. What matters would be finished. Could you run binaries/system/pyrogenesis without any issues?

Share this post


Link to post
Share on other sites

After a couple of hours of play I don't seem to find any problems other than me. :-) I am willing to give someone a login on my server if they want to create a CentOS 7 RPM. I've never messed with that.

I can't produce enough resources yet to keep up with more than 2 onslaughts and still get to town level. The third defeats me even on the very easy level. I don't like the fact that I cannot build any walls until town level. The older version allowed a wood stockade at village level but that seems to have been removed for some reason. But that is another thread.

Edited by gw1500se
  • Like 1

Share this post


Link to post
Share on other sites

Glad you got it working. It would be great if you could update the wiki with all the specific stuff you did and with directions to resources and dependencies etc. Then the  next person who comes along may have an easier time than you did ;)

Share this post


Link to post
Share on other sites

As we haven't heard back for a couple of weeks, I've played around with a virtual machine and put together something based on this thread and my own exploration. It can be found at https://trac.wildfiregames.com/wiki/BuildInstructions#CentOS. If the instructions are (or become) incorrect, please feel free to suggest corrections.

  • Like 2
  • Thanks 2

Share this post


Link to post
Share on other sites

I've been pretty busy. I looked at the entry and the one thing that is missing is that gcc version 4.8.5 also needs to be manually installed as that is not available from the CentOS 7 repos.

Edited by gw1500se

Share this post


Link to post
Share on other sites
1 hour ago, gw1500se said:

[...] gcc version 4.8.5 also needs to be manually installed as that is not available from the CentOS 7 repos.

With due respect, according to the list of packages on the CentOS 7 primary mirror, gcc 4.8.5 has been available since April 25th.

Share this post


Link to post
Share on other sites

Ignore previous. For some reason I cannot edit the text, it only lets me edit the reason.

In any case, the version of gcc needed is 7.2.1. devtoolset-7-gcc needs to be installed manually.

Share this post


Link to post
Share on other sites

Huh. On my VM, I was able to successfully compile the game with the provided gcc 4.8.5. And I did not have a package by the name of devtoolset-7-gcc (or similar) installed at all.

But if you're telling me that it is required for someone using a physical machine, then so be it.

Share this post


Link to post
Share on other sites

Hello everybody,

I have followed the instructions over there :

https://trac.wildfiregames.com/wiki/BuildInstructions

but  got similar issues than gw1500 @gw1500se 

==== Building pyrogenesis (release) ====
main.cpp
Linking pyrogenesis
obj/pyrogenesis_Release/main.o: In function `generic_category':
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
/usr/local/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
../../../binaries/system/liblowlevel.a(file_system.o): In function `copy_file':
/usr/local/include/boost/filesystem/operations.hpp:539: undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::detail::copy_option, boost::system::error_code*)'
/usr/local/include/boost/filesystem/operations.hpp:544: undefined reference to `boost::filesystem::detail::copy_file(boost::filesystem::path const&, boost::filesystem::path const&, boost::filesystem::detail::copy_option, boost::system::error_code*)'
collect2: error: ld returned 1 exit status
 

I have installed the expected boost as documented :

wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
tar -xf boost_1_68_0.tar.gz
cd boost_1_68_0/
./bootstrap.sh --with-libraries=filesystem,system
 sudo ./b2 install
$ ll /usr/local/lib/libboost_*
-rw-r--r--. 1 root root 245756 Dec 12 20:54 /usr/local/lib/libboost_filesystem.a
lrwxrwxrwx. 1 root root     29 Dec 12 20:53 /usr/local/lib/libboost_filesystem.so -> libboost_filesystem.so.1.68.0
-rwxr-xr-x. 1 root root 127208 Dec 12 20:53 /usr/local/lib/libboost_filesystem.so.1.68.0
-rw-r--r--. 1 root root  65844 Dec 12 20:54 /usr/local/lib/libboost_system.a
lrwxrwxrwx. 1 root root     25 Dec 12 20:53 /usr/local/lib/libboost_system.so -> libboost_system.so.1.68.0
-rwxr-xr-x. 1 root root  24800 Dec 12 20:53 /usr/local/lib/libboost_system.so.1.68.0
 

Edited by skaiware

Share this post


Link to post
Share on other sites

I ve tried

./update-workspaces.sh --without-lobby  --without-tests --without-pch
cd gcc
make clean
make

but still the same linking issues with boost.

@stanislas69

are you speaking about the change to the pch file :

$ more ../../../source/lib/pch/pch_boost.h | grep -C 5 filesystem 
// v2 is deprecated since 1.46 and removed entirely in 1.50
# define BOOST_FILESYSTEM_VERSION 3
#else
# define BOOST_FILESYSTEM_VERSION 2
#endif
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
#endif  // #ifndef INCLUDED_PCH_BOOST

 

Is nt  --without-pch get rid of that ?

 

Share this post


Link to post
Share on other sites

Hi @skaiware, I'm having difficulty replicating your issue with my VM. I wonder if you could run a few things and report back the results?

  1. What is the output when the following command is run?
    ld --verbose | grep SEARCH_DIR | tr -s '; ' '\n;
  2. Could you provide the file pyrogenesis.make (from the folder ./build/workspaces/gcc/)?
  3. Are you trying to compile A23 or the current svn head?

Share this post


Link to post
Share on other sites

Hello @s0600204

1 $ ld --verbose | grep SEARCH_DIR 
SEARCH_DIR("=/usr/x86_64-redhat-linux/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/x86_64-redhat-linux/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");

2 pyrogenesis.make attached : it s trying to link with -lboost_filesystem-mt -lboost_system-mt but the default build of boost seems to st  
$ ll /usr/local/lib/libboost_*
-rw-r--r--. 1 root root 245756 Dec 12 20:54 /usr/local/lib/libboost_filesystem.a
lrwxrwxrwx. 1 root root     29 Dec 12 20:53 /usr/local/lib/libboost_filesystem.so -> libboost_filesystem.so.1.68.0
-rwxr-xr-x. 1 root root 127208 Dec 12 20:53 /usr/local/lib/libboost_filesystem.so.1.68.0
-rw-r--r--. 1 root root  65844 Dec 12 20:54 /usr/local/lib/libboost_system.a
lrwxrwxrwx. 1 root root     25 Dec 12 20:53 /usr/local/lib/libboost_system.so -> libboost_system.so.1.68.0
-rwxr-xr-x. 1 root root  24800 Dec 12 20:53 /usr/local/lib/libboost_system.so.1.68.0
 

 

3 I m on current svn head:

$ svn log
------------------------------------------------------------------------
r21942 | Itms | 2018-12-03 03:07:00 -0800 (Mon, 03 Dec 2018) | 6 lines

Target 10.9 as minimal OSX version in all scripts, in order to match the libraries build script.
 

pyrogenesis.make

Share this post


Link to post
Share on other sites

Do you happen to have another version of boost installed on your system? Perhaps version 1.53?

Edit: Yeah, that appears to be it. I'm guessing at some point you've installed the boost-devel package from the CentOS repos. Unless you need this for compiling something else, I recommend you remove it. (If you do need it for compiling something else, then will that something compile with Boost 1.68, and if not - well, that's when things get interesting...)

Edited by s0600204
Edit post-exploration into the depths of premake.

Share this post


Link to post
Share on other sites

Yep :

$ ll /usr/lib64/libboost_sy*
lrwxrwxrwx. 1 root root    28 Sep 20  2017 /usr/lib64/libboost_system-mt.so -> libboost_system-mt.so.1.53.0
-rwxr-xr-x. 1 root root 15608 Aug  2  2017 /usr/lib64/libboost_system-mt.so.1.53.0
lrwxrwxrwx. 1 root root    25 Sep 20  2017 /usr/lib64/libboost_system.so -> libboost_system.so.1.53.0
-rwxr-xr-x. 1 root root 15592 Aug  2  2017 /usr/lib64/libboost_system.so.1.53.0

but I cannot uninstall it because needed it for some other softwares.

Should nt update-workspaces.sh  add -L/usr/local/lib  to the linking commands ?

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

×