Firstly, my guess is that Carla 0.7.0 will build with a modern Clang version and it's this check that is probably saying it needs Clang 3.9:
# Require clang 3.9
command -v clang++-3.9 >/dev/null 2>&1 || {
echo >&2 "clang 3.9 is required, but it's not installed.";
echo >&2 "make sure you build Unreal Engine with clang 3.9 too.";
exit 1;
}
If that's the case, you should probably just try symlinking /usr/bin/clang++
to /usr/bin/clang++3.9
and seeing if it compiles.
Assuming that doesn't work and it really wants that specific version of Clang or some kind of backwards incompatible changes were made between 3.9 and 6.0 of Clang, you can prebuilt binaries from Clang. You probably want the 3.9 for Ubuntu 16.04 since it's the "newest" one for this old version.
Once you have that you can extract all of that stuff to /usr/local
as root. I did notice that it does not come with a clang++3.9
binary, so I'm not sure where the Carla developers got that from. You'll need to symlink /usr/local/bin/clang++
to /usr/local/bin/clang++3.9
to fix that too.
There could be more dragons if they've done something weird with how they find includes directories as well. If you can use a newer version of Carla you should since they now use CMake and many other proper build techniques.