I've had several troubles in my attempts to get Overture to work. Some of my problems are solved and some don't:
First of all,
building and linking as 32bits
I used the suggested cmake command:
$ cmake -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_C_FLAGS=-m32 -DCMAKE_LD_FLAGS=-m32 .
and it states -DCMAKE_LD_FLAGS is not used
Then it gives some warnings like such:
Cannot generate a safe linker search path for target Overture because files in some directories may conflict with libraries in implicit directories:
link library [libogg.so] in /usr/lib64 may be hidden by files in
/path/frictionalGames/PenumbraOverture/../dependencies/lib/linux
for ogg, vorbis and vorbisfile.
I checked the cache variables, and it was using my system libs and not the local dependencies libs
OGG_LIBRARY:FILEPATH=/usr/lib64/libogg.so
After compiling, linking fails because this libraries are incompatible (it's trying to use the 64bit libs after all).
I solved this by adding to PenumbraOverture CMakeLists.txt:
set(PRIVATE_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/lib/linux)
All variables are now fine, no warnings, and everything links properly too.
compiling errors
1
in file LowLevelSystemSDL.cpp, line 636
error: 'symlink' was not declared in this scope
I solved this by adding "#include " on a #ifndef WIN32
was it supposed to work without this?
2
I also got this kind of errors:
/path/frictionalGames/HPL1Engine/sources/graphics/Renderer2D.cpp: In member function 'int hpl::cRenderer2D::CreateVertexes(hpl::cVector2f, hpl::cRect2f, float, bool, hpl::cVector2f, hpl::tVertexVec*, hpl::cColor, int, float)':/path/frictionalGames/HPL1Engine/sources/graphics/Renderer2D.cpp:923:72: error: taking address of temporary [-fpermissive]
for lines 898, 899, 903, 904 and 923.
I assume this is due to me using a more recent version of gcc, so I just passed the -fpermissive flag. I also used the flag -Wno-conversion-null as it complains a lot from some casts (just warnings, though).
cmake -DCMAKE_CXX_FLAGS="-m32 -fpermissive -Wno-conversion-null" -DCMAKE_C_FLAGS="-m32" .
3
Finally overloading errors on stdstring.cpp and scriptstring.cpp. It looks similar to
http://www.frictionalgames.com/forum/thread-18662.html
I fought this for hours, but just ended up commenting the offending lines (all regard the operator==). I encountered no solution for this.
Running
So now it compiles and links, but when I try to run it, I just get:
overture.bin: /path/frictionalGames/PenumbraOverture/../dependencies/lib/linux/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by overture.bin)
From all the other posts I read, I assumed it was possible to compile this with up to date glibc. Am I wrong?