Ioquake3 and openarena compiling to shared libraries in linux

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?

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


cd ioq3-master
cd ..
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/ ?


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


This will compile separate executables for each renderer.

1 Like

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?

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!

1 Like