如何在 Ubuntu 中安装 clang-format?
Posted
技术标签:
【中文标题】如何在 Ubuntu 中安装 clang-format?【英文标题】:How can I install clang-format in Ubuntu? 【发布时间】:2014-01-12 11:05:20 【问题描述】:我正在尝试使用 clang-tools,尤其是 clang-format 在 vim 中进行自动代码格式化,但我无法通过 apt-get search 找到该工具。
有没有人遇到过这个问题,有什么建议吗?
【问题讨论】:
你在运行sudo apt-cache search clang-format
时看到了什么?
实际上 apt-get 找不到它,然后我将 ubuntu-saucy 添加到我的存储库列表中,它找到了 clang-format。
【参考方案1】:
clang-format 在 ubuntu-precise 12.04 中不可用,但在 ubuntu 中可用 俏皮http://packages.ubuntu.com/saucy/clang-format-3.4。
为了找到这个带有 apt-cache 的包,我们必须将下面的列表添加到我们的存储库列表中。实际上下面的列表是为新加坡服务器生成的,但如果你想寻找你自己的国家,你可以使用 http://repogen.simplylinux.ch/generate.php
生成列表后,您必须将它们添加到您的存储库中,您可以通过查看此处了解如何执行此操作。 https://help.ubuntu.com/community/Repositories/CommandLine
软件包列表是;
deb http://sg.archive.ubuntu.com/ubuntu/ saucy main restricted universe multiverse
deb-src http://sg.archive.ubuntu.com/ubuntu/ saucy main restricted universe multiverse
deb http://sg.archive.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse
deb http://sg.archive.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse
deb http://sg.archive.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse
deb http://sg.archive.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
deb-src http://sg.archive.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse
deb-src http://sg.archive.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse
deb-src http://sg.archive.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse
deb-src http://sg.archive.ubuntu.com/ubuntu/ saucy-backports main restricted universe multiverse
那么你应该先用下面的命令搜索 clang-format
sudo apt-cache search clang-format
然后,你可以安装你想安装的版本如;
sudo apt-get install clang-format-3.3
【讨论】:
sudo
不需要 apt-cache search
sudo apt-get install clang-format-3.4
在 Ubuntu 14.04 LTS 中工作。这是在输入后:sudo apt-get install clang-3.4
我在 Ubuntu 14.04 上使用了 sudo apt install clang-format-3.6
如何获取最新版本? sudo apt install clang-format
安装的是clang-format版本6,但是我在网上能找到的文档页面是针对版本9和11的。为什么Ubuntu版本5主要版本已经过时了?【参考方案2】:
使用 Ubuntu 16.04,只需执行以下操作:
sudo apt install clang-format
【讨论】:
以这种方式安装后,我得到clang-format: command not found
。我继续删除 clang-format
包。
@MichaelFulton 这适用于ubuntu 16.04
,不确定以后的版本是否也适用。
在 Ubuntu 18.04 上,通过调用 clang-format-6.0
或您拥有的任何版本来使用该软件包。
我在 Ubuntu 14.04 上使用了 sudo apt install clang-format-3.6
在 Ubuntu 18.04 上,我使用:sudo apt install clang-format-5.0
安装后你可以尝试clang-format-5.0 -h
来检查是否一切顺利。【参考方案3】:
安装
尝试(按此顺序,一次一个,直到一个有效):
sudo apt install clang-format
sudo apt install clang-format-9.0
sudo apt install clang-format-8.0
sudo apt install clang-format-7.0
sudo apt install clang-format-6.0
sudo apt install clang-format-5.0
sudo apt install clang-format-4.0
sudo apt install clang-format-3.6
sudo apt install clang-format-3.4
sudo apt install clang-format-3.0
然后在此答案下方评论您拥有哪个版本的 Linux 或 Linux Ubuntu,以及哪个命令适合您。
我:
Ubuntu 14.04 使用
sudo apt install clang-format-3.6
其他设置和使用信息和资源:
这是一个git-clang-format
python 脚本,以便您可以将git clang-format
用作git 命令:https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format。把它放到你的 PATH 中;例如:在一个名为“~/bin/git-clang-format”的文件中,并将该文件标记为可执行文件(chmod +x ~/bin/git-clang-format
)。
调用和使用此文件的 git 工作流程将是:
git add my_changed_file.c # stage a file
git clang-format # let clang-format fix it up (this runs your "~/bin/git-clang-format" Python script)
git add my_changed_file.c # re-stage it since it's been changed by clang-format
git commit # commit the changed file
git-clang-format
python脚本设置说明:https://dx13.co.uk/articles/2015/4/3/Setting-up-git-clang-format.html
git clang-format
使用和工作流程说明:https://electronjs.org/docs/development/clang-format
2020 年 4 月更新:我刚刚在 GitHub 上的一个项目上启动并运行了 clang-format
我用./run_clang-format.sh
运行它;方法如下:
-
我在这里写了一些说明:https://github.com/AmboVent-1690-108/AmboVent#setup
这是我添加所有内容的 PR:https://github.com/AmboVent-1690-108/AmboVent/pull/39。你可以看看我是怎么做到的。
我在这里借用了我在 dotfiles 项目中的笔记和文件:https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/tree/master/clang-format
【讨论】:
【参考方案4】:pip3 install clang-format
为我提供了 ubuntu 18.04 上的最新版本 9.0,零配置
【讨论】:
我得到“ModuleNotFoundError: No module named 'skbuild'”?所以,你也需要这个:“pip3 install scikit-build”,而不是在同一个步骤中。【参考方案5】:只需使用以下命令:
sudo apt-get install clang-format
在 ubuntu16.04 下工作(安装设置 clang-format-3.8 (1:3.8-2ubuntu4))
当我尝试时
sudo apt-cache search clang-format
# it return
clang-format - Tool to format C/C++/Obj-C code
clang-format-3.5 - Tool to format C/C++/Obj-C code
clang-format-3.6 - Tool to format C/C++/Obj-C code
clang-format-3.7 - Tool to format C/C++/Obj-C code
clang-format-3.8 - Tool to format C/C++/Obj-C code
clang-format-3.9 - Tool to format C/C++/Obj-C code
clang-format-4.0 - Tool to format C/C++/Obj-C code
clang-format-5.0 - Tool to format C/C++/Obj-C code
clang-format-6.0 - Tool to format C/C++/Obj-C code
clang-format-8 - Tool to format C/C++/Obj-C code
那就试试
sudo apt-get install clang-format-8
ENV 中没有命令 clang-format
【讨论】:
【参考方案6】:现在可以直接在Debian/Ubuntu中使用apt install clang-format
来安装clang-format
。但是,Debian/Ubuntu 提供的clang-format
已经过时了。例如,Ubuntu 18.04 中clang-format
的最新版本是v7
,但最新的稳定版本已经达到v12
。您可以按照以下步骤安装最新版本的clang-format
:
第 1 步:运行wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
第 2 步:根据您的操作系统在/etc/apt/sources.list
末尾附加以下内容:
克星(Debian 10):
deb http://apt.llvm.org/buster/ llvm-toolchain-buster main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster main
# 11
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-11 main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-11 main
# 12
deb http://apt.llvm.org/buster/ llvm-toolchain-buster-12 main
deb-src http://apt.llvm.org/buster/ llvm-toolchain-buster-12 main
靶心(Debian 11):
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye main
# 11
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-11 main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-11 main
# 12
deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-12 main
deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-12 main
Xenial(Ubuntu 16.04):
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial main
# 11
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main
# 12
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-12 main
仿生(Ubuntu 18.04):
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic main
# 11
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main
# 12
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main
如果您的操作系统不在此列表中,您可以查看https://apt.llvm.org/。
第 3 步:运行sudo apt update
第 4 步:运行 apt search clang-format
并检查所有可用版本:
$ sudo apt search clang-format
Sorting... Done
Full Text Search... Done
arcanist-clang-format-linter/stable 0.git20161021-2 all
clang-format linter for Arcanist
clang-format/unknown 1:13.0-53~20210202214848.38 amd64
Tool to format C/C++/Obj-C code
clang-format-11/unknown 1:11.1.0~++20210203115409+1fdec59bffc1-1~exp1~20210203230038.161 amd64
Tool to format C/C++/Obj-C code
clang-format-12/unknown 1:12.0.0~++20210312110334+ca14f0282fce-1~exp1~20210312221110.59 amd64
Tool to format C/C++/Obj-C code
clang-format-13/unknown 1:13~++20210315063844+b868a3edad9d-1~exp1~20210315174553.2286 amd64
Tool to format C/C++/Obj-C code
clang-format-6.0/stable 1:6.0.1-10 amd64
Tool to format C/C++/Obj-C code
clang-format-7/stable 1:7.0.1-8+deb10u2 amd64
Tool to format C/C++/Obj-C code
第 5 步:使用apt install
安装您想要的clang-format
。然后您可以使用--version
来检查已安装的clang-format
。您可以在同一环境中安装多个版本的clang-format
。
$ sudo apt install -y clang-format-12
$ clang-format-12 --version
Ubuntu clang-format version 12.0.0-++20210312110334+ca14f0282fce-1~exp1~20210312221110.59
$ sudo apt install -y clang-format
$ clang-format --version
Ubuntu clang-format version 13.0.0-++20210315063844+b868a3edad9d-1~exp1~20210315174553.2286
【讨论】:
【参考方案7】:这是一个更新,因为我在 Ubuntu 21.04
上遇到了上述建议的问题sudo apt install clang-format
安装 v.12,我需要任何旧版本。
sudo apt install clang-format-9.0
不起作用。
(“找不到包”)
这很好用:
sudo apt install clang-format-9
【讨论】:
以上是关于如何在 Ubuntu 中安装 clang-format?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ubuntu 中安装 libwebsocket 库?