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
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
焦点(Ubuntu 20.04)
deb http://apt.llvm.org/focal/ llvm-toolchain-focal main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal main
# 14
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main
# 15
deb http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main
deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-15 main
(Ubuntu 22.04版)
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy main
# 14
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-14 main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-14 main
# 15
deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main
deb-src http://apt.llvm.org/jammy/ llvm-toolchain-jammy-15 main
$ 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
wget https://github.com/ElectricRCAircraftGuy/eRCaGuy_CodeFormatter/raw/main/bin/clang-format
wget https://github.com/ElectricRCAircraftGuy/eRCaGuy_CodeFormatter/raw/main/bin/git-clang-format
chmod +x clang-format git-clang-format
mkdir -p ~/bin
mv clang-format ~/bin
mv git-clang-format ~/bin
# log out of Ubuntu and log back in
# ensure it worked and you now have a later version
clang-format --version
# Check the help menus
clang-format -h
git clang-format -h
# OR (same thing as the line just above):
git-clang-format -h
url="https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz"
# download it; be patient: the file is ~600 MB
wget "$url"
# extract it; be patient: this could take several minutes, as the file is
# about 5 GB when extracted! On my high-speed computer with SSD, it took
# ~1 minute
time tar xf clang+llvm*.tar.xz
# cd into the bin dir
cd clang+llvm*/bin
# make a ~/bin dir if it doesn't exist yet
mkdir -p ~/bin
# copy out `clang-format` into your ~/bin dir
cp clang-format ~/bin
# copy out `git-clang-format` into your ~/bin dir
cp git-clang-format ~/bin
# Manually edit your ~/.profile file to ensure it contains the following in
# order to ensure ~/bin is part of your executable PATH variable. This is
# part of your default Ubuntu ~/.profile file (for which you have a backup
# copy in /etc/skel/.profile):
#
# # set PATH so it includes user's private bin if it exists
# if [ -d "$HOME/bin" ] ; then
# PATH="$HOME/bin:$PATH"
# fi
# Now, if this is your first time creating and using the ~/bin dir, log out
# of Ubuntu and log back in.
# check your clang-format version to ensure it shows the version you just
# installed
clang-format --version
# Ensure it is found in your ~/bin dir; my output to this command is:
# `/home/gabriel/bin/clang-format`
which clang-format
# Check `git-clang-format` too
which git-clang-format
# Check the help menus
clang-format -h
git clang-format -h
# OR (same thing as the line just above):
git-clang-format -h
# manually delete the the extracted folder if desired, and the
# downloaded *.tar.xz file as well, if desired
# See what git changes you have
git difftool
# OR: `git diff` if you haven't configured a difftool such as meld
git diff
# Add (stage) a C or C++ file to be committed
git add my_changed_file.c
# Run `git-clang-format` to have `clang-format` check and
# auto-format**just your changed lines**. (This runs the
# `~/bin/git-clang-format` Python script).
git clang-format
# See what changes `clang-format` just made to your changed lines
git difftool
# OR
git diff
# Add (stage) this file again since it's been changed by
# `git-clang-format`
git add my_changed_file.c
# commit the changed file
git commit
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
8条答案
按热度按时间62o28rlo1#
使用Ubuntu 16.04,只需执行以下操作:
e37o9pze2#
clang格式在ubuntu-precise 12.04中不可用,但在ubuntu-sausy**http://packages.ubuntu.com/saucy/clang-format-3.4中可用。
为了找到这个软件包与apt-cache,我们必须添加以下列表到我们的仓库列表。实际上,以下列表是为新加坡服务器生成的,但如果你想查找自己的国家,你可以使用http://repogen.simplylinux.ch/generate.php**
生成列表后,您必须将其添加到存储库中,您可以通过查看此处了解如何执行此操作。https://help.ubuntu.com/community/Repositories/CommandLine
软件包列表包括:
那么你应该先用下面的命令搜索clang-format
sudo apt缓存搜索clang格式
然后,您可以安装您想要安装的版本,例如;
sudo apt-get安装clang格式-3.3
gk7wooem3#
现在你可以直接在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
末尾追加以下内容:如果您的操作系统不在此列表中,则可以选中https://apt.llvm.org/。
步骤3:运行
sudo apt update
步骤4:运行
apt search clang-format
并检查所有可用版本:第五步:使用
apt install
安装您想要的clang-format
。然后您可以使用--version
检查已安装的clang-format
。您可以在同一个环境中安装多个版本的clang-format
。g6baxovj4#
clang-format
的制造商)获得最新版本的答案。*安装最新版本的
clang-format
和git-clang-format
(可作为git clang-format
运行):摘要
1.要在Ubuntu中安装
clang-format
,你可以使用sudo apt install clang-format
,或者它的一些变体(见下文),但是它经常安装一个非常旧的版本,缺少大量的功能。1.[首选]要在Ubuntu中安装 * 最新版本 * 的
clang-format
,您必须直接从the official release pages on GitHub获得它。我将在下面详细解释如何执行此操作。[旧方法]安装旧版本的
clang-format
:应执行:
然后按以下顺序一次一个地尝试,直到有一个成功:
例如,在Ubuntu 14.04上,上面的第一个有效的命令是
sudo apt install clang-format-3.6
。我相信,在Ubuntu 16.04上,sudo apt install clang-format
是有效的,但无论你使用的是哪个版本的Ubuntu,包括Ubuntu 20.04,sudo apt install clang-format
安装的都是一个相当过时的版本(例如:Ubuntu 18.04上的6.0.0版本)。所以,要获得最新版本的clang-format
,请继续阅读。[* 首选方法 *]如何在Ubuntu上安装 * 最新 * 版本的
clang-format
获取最新版本的超级快速说明
从LLVM获取
clang-format
和git-clang-format
(制作clang
C和C++编译器以及那些工具的父组织)直接,按照我下面的进一步说明操作。但是,这需要下载整个压缩的clang
编译器工具集版本,大小为~600 MB,并将其解压缩到一个文件夹中,完全解压缩后大小为~5 GB,这样你就可以复制出这些可执行文件的 * 几兆字节 。这需要一些时间。因此,如果您非常匆忙, 并且 * 如果您希望信任我的个人存储库中的可执行文件,我在存储库的
bin
目录中保存了clang-format
和git-clang-format
的最新版本(14.0.0或更高版本),如下所示:https://github.com/ElectricRCAircraftGuy/eRCaGuy_CodeFormatter/tree/main/bin。但是,通常不建议信任其他人的可执行文件,因此我在下面提供了从LLVM(clang-format
的制造商)的原始发行版中提取这些可执行文件的 * 确切 * 方法和说明,如果您愿意,可以自己按照这些方法和说明操作。如果您想从我的个人存储库快速下载并安装
clang-format
和git-clang-format
,请执行以下操作:直接从LLVM(制造商)获取 * 最新 * 版本 * 的完整说明:*
这需要下载整个LLVM
clang
C和C++编译器工具集,这是一个压缩文件,大小约为600 MB,然后将其解压缩到一个文件夹中,解压缩后大小约为5 GB,这样您就可以从其中复制出几MB的可执行文件。从最新的官方LLVM版本获取最新
clang-format
和git-clang-format
的完整步骤:1.访问LLVM官方clang发布页面:https://github.com/llvm/llvm-project/releases
1.查找适用于您的操作系统的最新二进制版本。例如:对于64位Linux,目前(截至2022年3月):下载链接是:https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.0/clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
1.使用上面找到的链接获取下面的命令:
请注意,
git
有一个非常简洁的特性,它可以使路径中以git-
开头的 * 任何 * 可执行文件自动被视为git
命令。每当运行git some_command
时,git
都会自动搜索系统中所有的PATH
变量,以查找名为git-some_command
的可执行文件。如果存在,git
运行它。因此,仅仅由于您将一个可执行文件放在名为git-clang-format
的路径中,git
就允许您以git clang-format
的形式运行它(git
后面没有破折号)。当然,您也可以选择以git-clang-format
的形式运行同一个可执行文件,因为它的文件名就是git-clang-format
。有关推荐的
git clang-format
使用方法和工作流程,请参见下文。其他安装和使用信息及资源:
1.如果您按照上面的步骤操作,您现在就拥有了
clang-format
* 和 *git-clang-format
的最新版本。拥有后者后,您可以将git clang-format
作为git
命令运行,以便在您将文件提交到git
之前自动格式化它们。git-clang-format
是由LLVM编写的Python脚本,clang
C和C++编译器和clang-format
的制造商。它位于官方LLVM GitHub资源库中,网址为:https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/git-clang-format。将其放入PATH中;例如:在名为~/bin/git-clang-format
的文件中,并将此文件标记为可执行文件(chmod +x ~/bin/git-clang-format
)。1.调用和使用此
git-clang-format
自动格式化程序的推荐git
工作流如下:1.其他可能有用的信息:
git-clang-format
python脚本设置说明:https://dx13.co.uk/articles/2015/4/3/Setting-up-git-clang-format.htmlgit clang-format
使用和工作流程说明:https://electronjs.org/docs/development/clang-formatclang-format
。方法如下:1.我在这里写了一些说明:https://github.com/AmboVent-1690-108/AmboVent#setup
1.下面是我添加所有内容的PR:https://github.com/AmboVent-1690-108/AmboVent/pull/39。你可以看看我是怎么做到的。
1.我借用了我的笔记和文件,我在我的dotfiles项目在这里:https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/tree/master/clang-format
9o685dep5#
pip3 install clang-format
在ubuntu18.04上给了我最新的9.0版本,没有任何配置js5cn81o6#
只需使用下面的命令:
它可以在ubuntu16.04中运行(安装设置clang-format-3.8(1:3.8- 2ubuntu 4))
当我尝试
那就试试
ENV中没有命令clang-format
oknwwptz7#
这是一个更新,因为我在Ubuntu 21.04上遇到了上面建议的问题
sudo apt install clang-format
安装v.12,我需要任何旧的。sudo apt install clang-format-9.0
无法工作。(“找不到软件包”)这样做效果很好:
sudo apt install clang-format-9
avkwfej48#
你可以做
这将从https://pypi.org/project/clang-format/安装一个预编译的二进制文件。如果你没有
sudo
访问权限,或者你需要一个预提交钩子的clang-format,这是非常实用的。