News:

Registration is only required if you want to post, and is not needed to read any posts. To avoid excess 'spam' accounts, all accounts where no posts have been made will be deleted after two weeks. Please register again if you wish to post.

Main Menu

Compiling under Linux Fedora 23

Started by elir71, May 23, 2016, 02:57:40 PM

Previous topic - Next topic

elir71

I've installed the C++ libraries for gcc ... g++

I've not had any success in compiling bridgecommand

Has anyone else had more success ?

forum_admin

Hi, are you able to post the output you get when trying to compile? At what stage is the process failing (I presume you've seen the instructions at https://github.com/bridgecommand/bc/blob/master/CompilingLinuxAndMac.txt)

elir71

#2
when compiling Irrlicht then

COpenGLExtensionHandler.h:60:20: fatal error: GL/gl.h: No such file or directory
compilation terminated
<builtin>: recipe fot target 'COpenGLDriver.o' failed
make: *** [COpenGLDriver.o] Error 1


is it something to do with what is described here
http://irrlicht.sourceforge.net/forum/viewtopic.php?f=7&t=49811

forum_admin

Hi,

I think it's more likely that you just need to install the OpenGL development package (which will include gl.h)

I'm not sure of the exact package name for fedora, but should be something like opengl-dev.

I use ubuntu, with debian based package management, but I can post a list of the packages I needed to install (from memory, the development packages for OpenGL,  X11, and a few others)

elir71

any hints as towards whats going wrong here .  I am trying to compile under fedora 25

sh-4.3# ls
changesForBC.txt  irrlicht-1.8.1
sh-4.3# cd irrlicht-1.8.1/
sh-4.3# ls
changes.txt  include  lib  readme.txt  source
sh-4.3# less readme.txt
sh-4.3# exit
exit
[root@localhost bc-master]# exit
exit
[root@localhost bc-master]# clear


























[root@localhost bc-master]# make
Makefile:44: Building...
g++ -I./libs/Irrlicht/irrlicht-1.8.1/include -I/usr/X11R6/include -std=c++11 -I./libs/enet/enet-1.3.11/include -O3 -ffast-math main.cpp Angles.cpp Buoy.cpp Buoys.cpp Camera.cpp GUIMain.cpp HeadingIndicator.cpp IniFile.cpp LandLights.cpp LandObject.cpp LandObjects.cpp Lang.cpp Light.cpp MyEventReceiver.cpp NavLight.cpp Network.cpp NetworkPrimary.cpp NetworkSecondary.cpp NMEA.cpp OtherShip.cpp OtherShips.cpp OutlineScrollBar.cpp OwnShip.cpp RadarCalculation.cpp RadarScreen.cpp Rain.cpp RealisticWater.cpp ScenarioChoice.cpp ScenarioDataStructure.cpp ScrollDial.cpp Ship.cpp SimulationModel.cpp Sky.cpp StartupEventReceiver.cpp Terrain.cpp Tide.cpp Utilities.cpp Water.cpp libs/enet/callbacks.c libs/enet/compress.c libs/enet/host.c libs/enet/list.c libs/enet/packet.c libs/enet/peer.c libs/enet/protocol.c libs/enet/unix.c libs/enet/win32.c libs/serial/src/impl/list_ports/list_ports_linux.cc libs/serial/src/impl/list_ports/list_ports_osx.cc libs/serial/src/impl/list_ports/list_ports_win.cc libs/serial/src/impl/unix.cc libs/serial/src/impl/win.cc libs/serial/src/serial.cc -o ./bridgecommand-bc -L./libs/Irrlicht/irrlicht-1.8.1/lib/Linux -lIrrlicht -L/usr/X11R6/lib -lGL -lXxf86vm -lXext -lX11 -lXcursor
In file included from NetworkPrimary.cpp:20:0:
Utilities.hpp: In instantiation of 'T Utilities::lexical_cast(std::__cxx11::string) [with T = int; std::__cxx11::string = std::__cxx11::basic_string<char>]':
NetworkPrimary.cpp:163:101:   required from here
Utilities.hpp:61:55: warning: overflow in implicit constant conversion [-Woverflow]
             var = std::numeric_limits<float>::infinity();
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
Utilities.hpp:69:16: warning: overflow in implicit constant conversion [-Woverflow]
            var = -std::numeric_limits<float>::infinity();;
            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from NetworkSecondary.cpp:23:0:
Utilities.hpp: In instantiation of 'T Utilities::lexical_cast(std::__cxx11::string) [with T = unsigned int; std::__cxx11::string = std::__cxx11::basic_string<char>]':
NetworkSecondary.cpp:202:95:   required from here
Utilities.hpp:61:55: warning: overflow in implicit constant conversion [-Woverflow]
             var = std::numeric_limits<float>::infinity();
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
Utilities.hpp:69:16: warning: overflow in implicit constant conversion [-Woverflow]
            var = -std::numeric_limits<float>::infinity();;
            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ScenarioDataStructure.cpp:18:0:
Utilities.hpp: In instantiation of 'T Utilities::lexical_cast(std::__cxx11::string) [with T = unsigned int; std::__cxx11::string = std::__cxx11::basic_string<char>]':
ScenarioDataStructure.cpp:156:69:   required from here
Utilities.hpp:61:55: warning: overflow in implicit constant conversion [-Woverflow]
             var = std::numeric_limits<float>::infinity();
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
Utilities.hpp:69:16: warning: overflow in implicit constant conversion [-Woverflow]
            var = -std::numeric_limits<float>::infinity();;
            ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccM50sQ7.o: undefined reference to symbol '_ZN3irr4core21LOCALE_DECIMAL_POINTSE'
/usr/lib64/libIrrXML.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:44: recipe for target 'all' failed
make: *** [all] Error 1
[root@localhost bc-master]#


David Evans

elir71

Ok, under fedora 25 I have downloaded the most recent stable sources and some progress has been made quite a few less errors and warnings, however its still not compiling

[davide@localhost bc-5.0]$ make
Makefile:44: Building...
g++ -I./libs/Irrlicht/irrlicht-svn/include -I/usr/X11R6/include -std=c++11 -I./libs/enet/enet-1.3.11/include -O3 -ffast-math main.cpp Angles.cpp Buoy.cpp Buoys.cpp Camera.cpp DefaultEventReceiver.cpp FFTWave.cpp GUIMain.cpp GUIRectangle.cpp HeadingIndicator.cpp IniFile.cpp LandLights.cpp LandObject.cpp LandObjects.cpp Lang.cpp Light.cpp MovingWater.cpp MyEventReceiver.cpp NMEA.cpp NavLight.cpp Network.cpp NetworkPrimary.cpp NetworkSecondary.cpp NumberToImage.cpp OtherShip.cpp OtherShips.cpp OutlineScrollBar.cpp OwnShip.cpp RadarCalculation.cpp RadarScreen.cpp Rain.cpp ScenarioChoice.cpp ScenarioDataStructure.cpp ScrollDial.cpp Ship.cpp SimulationModel.cpp Sky.cpp StartupEventReceiver.cpp Terrain.cpp Tide.cpp Utilities.cpp Water.cpp libs/enet/callbacks.c libs/enet/compress.c libs/enet/host.c libs/enet/list.c libs/enet/packet.c libs/enet/peer.c libs/enet/protocol.c libs/enet/unix.c libs/enet/win32.c libs/serial/src/impl/list_ports/list_ports_linux.cc libs/serial/src/impl/list_ports/list_ports_osx.cc libs/serial/src/impl/list_ports/list_ports_win.cc libs/serial/src/impl/unix.cc libs/serial/src/impl/win.cc libs/serial/src/serial.cc -o ./bridgecommand-bc -L./libs/Irrlicht/irrlicht-svn/lib/Linux -lIrrlicht -L/usr/X11R6/lib -lGL -lXxf86vm -lXext -lX11 -lXcursor
/usr/bin/ld: /tmp/cciGPdvL.o: undefined reference to symbol '_ZN3irr4core21LOCALE_DECIMAL_POINTSE'
/usr/lib64/libIrrXML.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:44: recipe for target 'all' failed
make: *** [all] Error 1
[davide@localhost bc-5.0]$

elir71

/usr/lib64/libIrrXML.so.1  .......... which is a symbolic link to libIrrXML.so.1.8.4
is in the filesystem although the version number is 1.8.4

elir71

Ok got it working I followed the instructions on https://github.com/bridgecommand/bc/blob/master/CompilingLinuxAndMac.txt
taken from the above .........

1) Change directory to ./libs/Irrlicht/irrlicht-svn/source/Irrlicht
2) Run 'make' to compile irrlicht (1.9 from svn plus minor changes for Bridge Command)
3) cd back to this directory
4) Run 'make' to compile Bridge Command
(Additional steps are optional to build the additional programs - you can now run ./bridgecommand-bc)

5) cd to ./controller
6) Run 'make' to compile the Map Controller, and cd ..
7) cd to ./editor
8) Run 'make' to compile the Scenario editor, and cd ..
9) cd to ./iniEditor
10) Run 'make' to compile the Settings editor, and cd ..
11) cd to ./launcher
12) Run 'make' to compile the launcher, and cd ..

Running
13) Run ./bridgecommand to start the simulator.


Works well on fedora 25 and seems to run a lot smoother than on windows on the same hardware (dual boot older laptop)

elir71

Compiling under fedora 28

compiling irrlicht went ok

however there seems to be an issue when compiling bc


/tmp/cc8W3eNN.o: In function `main.cold.225':
main.cpp:(.text.unlikely+0x57): undefined reference to `Sound::~Sound()'
/tmp/cc8W3eNN.o: In function `main':
main.cpp:(.text.startup+0x196b): undefined reference to `Sound::Sound()'
main.cpp:(.text.startup+0x21fb): undefined reference to `Sound::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
main.cpp:(.text.startup+0x2295): undefined reference to `Sound::StartSound()'
main.cpp:(.text.startup+0x2823): undefined reference to `Sound::~Sound()'
/tmp/ccvPnksi.o: In function `SimulationModel::setPortEngine(float)':
SimulationModel.cpp:(.text+0xd6c): undefined reference to `Sound::setVolumeEngine(float)'
/tmp/ccvPnksi.o: In function `SimulationModel::setStbdEngine(float)':
SimulationModel.cpp:(.text+0xdff): undefined reference to `Sound::setVolumeEngine(float)'
/tmp/ccvPnksi.o: In function `SimulationModel::startHorn()':
SimulationModel.cpp:(.text+0x1700): undefined reference to `Sound::setVolumeHorn(float)'
/tmp/ccvPnksi.o: In function `SimulationModel::endHorn()':
SimulationModel.cpp:(.text+0x171c): undefined reference to `Sound::setVolumeHorn(float)'
collect2: error: ld returned 1 exit status
make: *** [Makefile:45: all] Error 1

elir71

(this possibly applies to many other compilations also)

The sound routines were not included in the Makefile so the solution is to edit the Make file and

Insert Sound.cpp into the line as shown below



# List of source files, separated by spaces
Sources := main.cpp Angles.cpp Buoy.cpp Buoys.cpp Camera.cpp DefaultEventReceiver.cpp FFTWave.cpp GUIMain.cpp GUIRectangle.cpp HeadingIndicator.cpp IniFile.cpp LandLights.cpp LandObject.cpp LandObjects.cpp Lang.cpp Light.cpp ManOverboard.cpp MovingWater.cpp MyEventReceiver.cpp NMEA.cpp NavLight.cpp Network.cpp NetworkPrimary.cpp NetworkSecondary.cpp NumberToImage.cpp OtherShip.cpp OtherShips.cpp OutlineScrollBar.cpp OwnShip.cpp RadarCalculation.cpp RadarScreen.cpp Rain.cpp ScenarioChoice.cpp ScenarioDataStructure.cpp ScrollDial.cpp Ship.cpp SimulationModel.cpp Sky.cpp Sound.cpp StartupEventReceiver.cpp Terrain.cpp Tide.cpp Utilities.cpp Water.cpp libs/enet/callbacks.c libs/enet/compress.c libs/enet/host.c libs/enet/list.c libs/enet/packet.c libs/enet/peer.c libs/enet/protocol.c libs/enet/unix.c libs/enet/win32.c libs/serial/src/impl/list_ports/list_ports_linux.cc libs/serial/src/impl/list_ports/list_ports_osx.cc libs/serial/src/impl/list_ports/list_ports_win.cc libs/serial/src/impl/unix.cc libs/serial/src/impl/win.cc libs/serial/src/serial.cc




after that it compiles fine

elir71

I have added this as a fork for incorporation on github

forum_admin