Zesty 附带了多个版本的 Clang。clang包同时依赖clang-3.9和clang-4.0。似乎默认使用 Clang 4:
$ clang --version
clang version 4.0.0-1ubuntu1 (tags/RELEASE_400/rc1)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
但是,我需要 Clang 3.9 作为默认版本。由于这个原因,我无法编译 UnrealEngine:
UnrealBuildTool Exception: ERROR: This version of the Unreal Engine can only be
compiled with clang 3.9, 3.8, 3.7, 3.6 and 3.5. clang 4.0.0 may not build it -
please use a different version.
我该怎么办?
clang++
要建立在公认的答案的基础上,如果您有多个版本的 clang,那么依赖它可能符合您的最大利益,clang
因此您需要做的就是将 clang 更新到不同的版本,并且 clang++ 的版本也会随之而来。您可以使用 的
--slave
选项来执行此操作update-alternatives
。所以是这样的:您当然可以为其他版本执行此操作:
要切换版本,您只需键入:
clang
输入一个选择,两者clang++
都会自动切换到相同的版本。如果你也有多个版本,同样的想法也适用
GCC
,你可以使用这种方法来配置gcc
和g++
.错误:
当您尝试运行上述命令时,您可能会收到此错误。不用担心,这只是意味着您已经将
clang++
它自己配置为替代方案,因此您需要在上述操作生效之前删除该替代方案。您可以使用以下命令执行此操作:对每个版本的 clang++ 执行此操作,然后在将它们全部删除后重试。
资料来源:
这个答案为我指明了正确的方向:
运行这两个命令后,构建能够继续。