Page 1 of 1

Linux build failing yet again

PostPosted: Sun Jun 17, 2018 5:19 pm
by Shoegazer
Hello,

Compiling with Mint 18.3 yields the following:

Code: Select all
obj/New3D.o: In function `New3D::CNew3D::Init(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)':
New3D.cpp:(.text+0x171): undefined reference to `New3D::R3DFrameBuffers::CreateFBO(int, int)'
obj/New3D.o: In function `New3D::CNew3D::~CNew3D()':
New3D.cpp:(.text+0x220): undefined reference to `New3D::R3DFrameBuffers::~R3DFrameBuffers()'
obj/New3D.o: In function `New3D::CNew3D::CNew3D(Util::Config::Node const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
New3D.cpp:(.text+0x30c9): undefined reference to `New3D::R3DFrameBuffers::R3DFrameBuffers()'
obj/New3D.o: In function `New3D::CNew3D::RenderFrame()':
New3D.cpp:(.text+0x79b4): undefined reference to `New3D::R3DFrameBuffers::Clear(unsigned int)'
New3D.cpp:(.text+0x79d4): undefined reference to `New3D::R3DFrameBuffers::SetFBO(New3D::Layer)'
New3D.cpp:(.text+0x7a04): undefined reference to `New3D::R3DFrameBuffers::StoreDepth()'
New3D.cpp:(.text+0x7a11): undefined reference to `New3D::R3DFrameBuffers::SetFBO(New3D::Layer)'
New3D.cpp:(.text+0x7a2c): undefined reference to `New3D::R3DFrameBuffers::RestoreDepth()'
New3D.cpp:(.text+0x7a39): undefined reference to `New3D::R3DFrameBuffers::SetFBO(New3D::Layer)'
New3D.cpp:(.text+0x7ab2): undefined reference to `New3D::R3DFrameBuffers::Draw()'
New3D.cpp:(.text+0x7b30): undefined reference to `New3D::R3DFrameBuffers::DisableFBO()'
collect2: error: ld returned 1 exit status
Makefiles/Makefile.inc:263: recipe for target 'bin/supermodel' failed
make: *** [bin/supermodel] Error 1


Any ideas what's going on?

Re: Linux build failing yet again

PostPosted: Mon Jun 18, 2018 4:07 am
by Ian
You need to add R3DFrameBuffers.cpp to the makefile
and probably GLSLShader.cpp too

Re: Linux build failing yet again

PostPosted: Mon Jun 18, 2018 1:33 pm
by Shoegazer
Thanks, Ian. I'll use this manual process until a fix can be made to the codebase.

I tried adding the following lines to the Makefile:

Code: Select all
include Src/Graphics/New3D/R3DFrameBuffers.cpp
include Src/Graphics/New3D/GLSLShader.cpp


However, compiling now returns the following error:

Code: Select all
Src/Graphics/New3D/R3DFrameBuffers.cpp:6: *** missing separator.  Stop.


Any ideas here?

Re: Linux build failing yet again

PostPosted: Fri Jul 20, 2018 12:33 pm
by Shoegazer
Following up on this one. Looking further, the "missing separator" error seems to be some kind of syntax error related to spacing or tabs in the include files. Not sure if this is because of some Win32-specific code that should be updated to also work on GNU Make, or something else. Can anyone offer any suggestions here? Thanks.

Re: Linux build failing yet again

PostPosted: Thu Jul 26, 2018 5:01 pm
by Shoegazer
Okay, after talking to Ian further about this, the change needs to take place in "makefile.inc" not in the Makefile, as I had originally assumed.

Hopefully the makefile.inc can be changed in the main source in order to avoid this manual process in the future.