我在编译代码时无法让 clang++ 工作。具体来说,我收到了一个make: clang++: Command not found错误。
我跑了sudo apt-get install llvm,还有sudo apt-get install build-essential和sudo apt-get update。我需要做什么才能安装 clang++?
我想尝试 C++17 特性,我想安装符合标准的编译器(最好是 GCC)。我对 Linux 和 Ubuntu 完全陌生,我只是不太了解。
我试图遵循https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test但没有运气。首先我跑了:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
据我了解,此命令会安装一些密钥。接下来我尝试:
sudo add-apt-repository ppa:ubuntu-toolchain-r/gcc-7
Run Code Online (Sandbox Code Playgroud)
那返回:
Error: 'ppa:ubuntu-toolchain-r/gcc-7' invalid
Run Code Online (Sandbox Code Playgroud)
接下来我尝试安装 clang 开发分支:
apt-get install clang-4.0 lldb-4.0
Run Code Online (Sandbox Code Playgroud)
它给了我
E: Unable to locate package clang-4.0
E: Couldn't find any package by glob 'clang-4.0'
E: Couldn't find any package by regex 'clang-4.0'
E: Unable to locate package lldb-4.0
E: Couldn't find any package by glob 'lldb-4.0'
E: Couldn't find any package by regex 'lldb-4.0'
Run Code Online (Sandbox Code Playgroud)
这一切意味着什么?怎么了?
安装clang-3.5软件包后,在命令行中键入clang或clang++会给我一条消息,说明可以在哪些软件包中找到这些程序。尝试clang-3.5再次运行安装时,apt 说明它已经安装并且是最新版本。
原始安装是使用以下命令完成的:
sudo apt-get install clang-3.5 llvm
Run Code Online (Sandbox Code Playgroud)
build-essential 之前安装过。
关于可能发生了什么的任何想法?
我正在与 Emscripten 合作,其中一条错误消息是:
LLVM version appears incorrect (seeing "3.3", expected "3.9")
Run Code Online (Sandbox Code Playgroud)
但是我在 LLVM 页面上找不到 3.9:
http://llvm.org/releases/download.html#3.8.0
我该怎么做才能安装 LLVM 3.9?
如何在 Ubuntu 18.04 LTS Bionic 上安装 clang?
我只想安装最新版本的clang http://packages.ubuntu.com/raring/clang-3.2
这是否意味着我必须将内核更新为 raring?
我已经尝试了 3 天在 Ubuntu 16.04 机器上安装 clang 5.0。我尝试了各种 指南,但似乎没有任何效果。当我尝试简单地从 SVN 获取最新版本并构建/安装(详见此处)时,尝试编译一个简单的程序会导致:
> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
Run Code Online (Sandbox Code Playgroud)
然后我尝试在构建之前设置-DGCC_INSTALL_PREFIX标志cmake,但这导致了更好的错误:
> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>
Run Code Online (Sandbox Code Playgroud)
我一直遵循的步骤是(来自上述指南):
> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-G "Unix Makefiles" path/to/llvm
...
> make
...
> make check-clang
...
> make install-clang
...
Run Code Online (Sandbox Code Playgroud)
有人可以像白痴一样对待我并逐步解释如何安装 clang 5.0 吗?或者给我指一个即使像我这样的基本傻瓜也可以遵循的指南?如果您还可以解释如何为 C++17 构建和安装 libc++,我将不胜感激。
更新:看来我没有正确安装 clang,因为这是使用 clang 进行详细编译的输出:
...
#include …Run Code Online (Sandbox Code Playgroud) 所以我试图在我的 Ubuntu 12.04(64 位)上安装Halide。我需要安装 llvm-3.2 和 clang。
运行sudo apt-get install llvm-3.2以“未找到包”结束。
尝试sudo apt-get install llvm或sudo apt-get install clang安装 2.9 版本。谷歌帮我解决了这个问题
sudo add-apt-repository ppa:kxstudio-team/builds
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
现在,sudo apt-get install llvm-3.2 clang-3.2工作。但是当我在 Halide 文件夹中运行 make 时,我仍然得到 clang:Command not found 。
我已经安装了 clang 3.0 和 clang 3.8:
$ sudo update-alternatives --config clang
Run Code Online (Sandbox Code Playgroud)
更新替代:错误:叮当没有替代品。
如何将 3.8 设置为/usr/bin/clang?
我尝试了以下明显的命令:
sudo apt-get update
sudo apt-get install clang-3.8
Run Code Online (Sandbox Code Playgroud)
但我收到消息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)
我试过:
sudo apt-get update
sudo aptitude install clang-3.8
Run Code Online (Sandbox Code Playgroud)
但得到消息:
Couldn't find package "clang-3.8". However, the following
packages contain "clang-3.8" in their name:
clang-3.8-doc
Couldn't find package "clang-3.8". However, the following
packages contain "clang-3.8" in their name:
clang-3.8-doc
No packages will be installed, upgraded, or removed.
0 packages upgraded, …Run Code Online (Sandbox Code Playgroud)