Ioquake3 and openarena compiling to shared libraries in linux


#1

Like the title says, if I download the engine from either github then attempt to compile it with ‘make’ then it compiles to a shared library and won’t run. Does anyone know how to fix this? I’m a total linux noob. mingw does appear to compile ioquake3 on windows, but I don’t have a copy of quake3- is there a way of getting the engine to work with openarena files, or do I need to use ioquake3 files?


#2

I tried it in a linux VM just now, and it seems to work for me.

Steps:

unzip ioq3-master.zip
cd ioq3-master
make
cd ..
unzip openarena-0.8.8.zip
cd openarena-0.8.8
cp ../ioq3-master/build/release-linux-x86_64/* .
./ioquake3.x86_64 +set com_standalone 1 +set com_basegame baseoa

When you compile with make, are you getting the following files in build/release-linux-x86_64/ ?

ioq3ded.x86_64
ioquake3.x86_64
renderer_opengl1_x86_64.so
renderer_opengl2_x86_64.so

If you simply don’t want the renderer(s) to compile as a separate .so, you could try this:

make USE_RENDERER_DLOPEN=0

This will compile separate executables for each renderer.


#3

I do get those files but they are shared libraries not executables, and so won’t run. When I try to follow your steps, on the last stepit says ‘-r not specified, omitting file x’ for every folder in the ioq3 build, then says it ‘cannot stat’ everything else- do you know how do I fix this?


#4

I’ve worked it out… I had already found a thread saying I needed to add ‘-no-pie’ to the compiler flags , but silly me hadn’t clicked that I needed to add that in the makefiles! thanks!