代码之家  ›  专栏  ›  技术社区  ›  ruipacheco

如何建立最新的叮当整洁?

  •  30
  • ruipacheco  · 技术社区  · 7 年前

    我试着用 sources 但它抱怨未定义的CMake命令:

    CMake Error at clang-apply-replacements/CMakeLists.txt:5 (add_clang_library):
      Unknown CMake command "add_clang_library".
    
    
    CMake Warning (dev) in CMakeLists.txt:
      No cmake_minimum_required command is present.  A line of code such as
    
        cmake_minimum_required(VERSION 3.9)
    
      should be added at the top of the file.  The version specified may be lower
      if you wish to support older CMake versions for this project.  For more
      information run "cmake --help-policy CMP0000".
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Configuring incomplete, errors occurred!
    

    如何构建clang tidy,或者如何在macOS上安装最新版本?

    7 回复  |  直到 7 年前
        1
  •  21
  •   Thomas Goyne    3 年前

    最新步骤:

    git clone https://github.com/llvm/llvm-project.git
    cd llvm-project
    mkdir build 
    cd build
    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" ../llvm
    make install clang-tidy
    

    my own blog post.

        2
  •  17
  •   jtbandes    5 年前

    编辑 :此答案已过时。LLVM项目已移动到位于的单个git存储库 https://github.com/llvm/llvm-project . 有关更新说明,请参阅下面的答案。


    计划建造clang tidy 在…内 llvm/clang的签出,并取决于llvm项目中的CMake宏。你应该看看llvm回购,然后看看里面的叮当回购 llvm/tools/clang , 内部额外回购 llvm/tools/clang/tools/extra . 然后可以在顶级目录中运行CMake,然后 make clang-tidy 应该有效。

    如果您对自己构建它不感兴趣,那么LLVM的自制公式似乎还包括额外的工具: https://github.com/Homebrew/homebrew-core/blob/382d3defb5bc48ce2dccd17261be70c4ada9a124/Formula/llvm.rb#L181

        3
  •  15
  •   9cvele3    5 年前

    根据米尔德纳的说法,我也有同样的问题。Got通过稍微修改的代码YvesgereY得到了解决(我没有足够的声誉对那个答案发表评论,所以我会用一个新的答案代替)。

    简而言之,我补充道 -G "Unix Makefiles" 到cmake。如果没有此选项,则不会生成生成文件。此外,我使用 -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;" . 当只指定了clang tools extra时,它不起作用。

    以下是整个片段:

    git clone https://github.com/llvm/llvm-project.git
    cd llvm-project
    mkdir build 
    cd build
    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;" ../llvm
    make -j8 install-clang-tidy
    
        4
  •  13
  •   natersoz    6 年前

    @jtbandes:谢谢你提供的信息。

    我想为我们noobs分享这些明确的步骤:

    1 LLVM Download Page

    2.将每一项详细记录到适当的目录中:

    $ tar -zxvf <download_dir_path>/llvm-6.0.1.src.tar.xz
    $ cd llvm-6.0.1.src/tools
    $ tar -zxcf <download_dir_path>/cfe-6.0.1.src.tar.xz
    $ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
    $ tar -zxvf <download_dir_path>/clang-tools-extra-6.0.1.src.tar.xz
    

    目录中的结果 llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/clang-tools-extra-6.0.1.src/clang-tidy ; 这是不正确的。这个 lang-tools-extra-6.0.1.src extra (如@jtbandes所述)。

    $ cd llvm-6.0.1.src/tools/cfe-6.0.1.src/tools
    $ mv clang-tools-extra-6.0.1.src extra
    or
    $ ln -s clang-tools-extra-6.0.1.src extra
    

    路径 llvm-6.0.1.src/tools/cfe-6.0.1.src/tools/extra/clang-tidy 现在应该有效

    4、建设:

    $ cd llvm-6.0.1.src
    $ mkdir build
    $ cd build
    $ cmake ..
    $ make 
    

    一切都应该没有错误或警告。

    5、构建输出:

    构建输出可以在中找到 llvm-6.0.1.src/build/bin .

        5
  •  2
  •   evg656e    4 年前

    对于所有正在寻找最新(LLVM 11)Windows构建说明的人(确保在PATH中安装并设置了CMake、Visual Studio 2019和git):

    git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git
    
    cd llvm-project
    mkdir build
    cd build
    
    cmake -G "Visual Studio 16 2019" -Thost=x64 -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" ../llvm
    cmake --build . --target clang-tidy --config RelWithDebInfo --parallel
    cmake --build . --target clang-query --config RelWithDebInfo --parallel
    
        6
  •  0
  •   Kjeld    3 年前

    这对我很有效:

    mkdir build
    
    files="
    llvm-12.0.1.src.tar.xz
    clang-12.0.1.src.tar.xz
    clang-tools-extra-12.0.1.src.tar.xz
    "
    
    for f in $files; do
      echo "Untar $f"
      tar xf $f
    done
    
    mv llvm-12.0.1.src llvm
    mv clang-12.0.1.src llvm/tools/clang
    mv clang-tools-extra-12.0.1.src llvm/tools/clang/tools/extra
    
    cd build
    cmake -G "Unix Makefiles" \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr/local/llvm \
      -DCLANG_BUILD_TOOLS=ON \
      ../llvm
    make -j16 install
    
        7
  •  0
  •   One Full Time Equivalent    3 年前

    从LLVM 14.0.0开始,稀疏签出不再工作(至少暂时如此),顶级目录不包含Cmakelist。txt。我相信在LLVM 13.0.1之后,树的布局已经改变了。因此,在这里,如果不进行一些修改,任何方法都不起作用。

    以下是如何构建版本 15.0.0吉特 (本文撰写时的最近一次)。参见相关问题: https://github.com/llvm/llvm-project/issues/53281 .

    首先,使用git获取压缩代码或克隆(速度较慢)

    $ wget "https://github.com/llvm/llvm-project/archive/refs/heads/main.zip" -O llvm.zip
    $ unzip llvm.zip
    

    像往常一样,创建一个构建目录并在 llvm 目录

    $ mkdir /build
    $ cd /build
    $ cmake -G "Unix Makefiles" \
          -DCMAKE_INSTALL_PREFIX=/usr/local/llvm \
          -DCMAKE_BUILD_TYPE=Release \
          -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
          /llvm-project-main/llvm
    

    在生成的文件中向下导航,只构建clangtidy。

    $ cd /build/tools/clang/tools/extra/clang-tidy
    $ make install
    

    /usr/local/llvm . 此外,如果您想签出特定版本,请在第一步中使用以下标记:

    $ wget "https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-14.0.0.zip"
    

    跑步 llvm-project/clang/lib/Headers 并且可以通过指向 -extra-arg=-I/path/to/builtin/headers .

    推荐文章