Jump to content

Installation on CentOS 7


gw1500se
 Share

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.

Link to comment
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
Link to comment
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+

Link to comment
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.

Link to comment
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?

Link to comment
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 ;)

Link to comment
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

 

Link to comment
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
Link to comment
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 ;)

Link to comment
Share on other sites

  • 3 weeks later...

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
Link to comment
Share on other sites

  • 3 weeks later...

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
Link to comment
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 ?

 

Link to comment
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?
Link to comment
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

Link to comment
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.
Link to comment
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 ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...