如何在 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 在 vi​​m 中进行自动代码格式化,但我无法通过 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-formatpython脚本设置说明: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 库?

如何在 ubuntu 中安装 bluejeans?

如何在ubuntu中安装php

如何在 WSL 中安装多个单独的 Ubuntu 实例? [关闭]

如何在Ubuntu中安装Spring Boot CLI?

如何在ubuntu系统中安装搜狗输入法