1)
make -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly" -DCMAKE_BUILD_TYPE=Release
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_ASM_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/home/a/src/llvm-project/build/CMakeFiles/CMakeOutput.log".
CMAKE_C_COMPILER等三个没有定义
which gcc
sudo apt install g++
- 继续报错
a@a:~/src/llvm-project$ cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly" -DCMAKE_BUILD_TYPE=Release cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
-- Configuring incomplete, errors occurred!
See also "/home/a/src/llvm-project/build/CMakeFiles/CMakeOutput.log".
感觉CMAKE没有问题啊
cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
sudo apt install ninja-build
装ninja
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly" -DCMAKE_BUILD_TYPE=Release cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
-- Configuring incomplete, errors occurred!
See also "/home/a/src/llvm-project/build/CMakeFiles/CMakeOutput.log".
a@a:~/src/llvm-project$ sudo apt install ninja-build
sudo\] a 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 下列【新】软件包将被安装: ninja-build 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 265 个软件包未被升级。 需要下载 111 kB 的归档。 解压缩后会消耗 358 kB 的额外空间。 获取:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 ninja-build amd64 1.10.1-1 \[111 kB
已下载 111 kB,耗时 3秒 (41.9 kB/s)
正在选中未选择的软件包 ninja-build。
(正在读取数据库 ... 系统当前共安装有 218408 个文件和目录。)
准备解压 .../ninja-build_1.10.1-1_amd64.deb ...
正在解压 ninja-build (1.10.1-1) ...
正在设置 ninja-build (1.10.1-1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
a@a:~/src/llvm-project$ cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly" -DCMAKE_BUILD_TYPE=Release cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
CMake Error at CMakeLists.txt:143 (MESSAGE):
poly isn't a known project:
bolt;clang;clang-tools-extra;compiler-rt;cross-project-tests;libclc;lld;lldb;mlir;openmp;polly;flang;libc.
Did you mean to enable it as a runtime in LLVM_ENABLE_RUNTIMES?
6)分析
poly写错了,应该是polly
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;polly" -DCMAKE_BUILD_TYPE=Release cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
目前还是OK的。
累啊
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly" -DCMAKE_BUILD_TYPE=Release cmake -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
-- Generating done
-- Build files have been written to: /home/a/src/llvm-project/build
cmake都要这么久,估计得弄几天几夜。
7)cmake, llvm参数分析
cmake -S llvm:主的文件夹是llvm?大概这个意思吧?
-B build:在build里面构建。
-DCMAKE_BUILD_TYPE=Release:release版本。
-DCMAKE_INSTALL_PREFIX=/home/a/src/llvm-project/install :安装目录
-G Ninja:这个是什么交叉编译,不知道啥意思。
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;poly":支要安装的随便库。
包括了下面这些:
bolt CODE_OF_CONDUCT.md flang-rt libcxxabi llvm polly third-party
build compiler-rt install libunwind llvm-libgcc pyproject.toml utils
clang CONTRIBUTING.md libc LICENSE.TXT mlir README.md
clang-tools-extra cross-project-tests libclc lld offload runtimes
cmake flang libcxx lldb openmp SECURITY.md
-DCMAKE_BUILD_TYPE=Release :重复了。
cmake -DCMAKE_C_COMPILER=/usr/bin/gcc:C编译器。
-DCMAKE_CXX_COMPILER=/usr/bin/g++:C++编译器
-DCMAKE_ASM_COMPILER=/usr/bin/gcc:这个不ASM不知道对不对啊。
8)在虚拟机里面ninja -j2开始编译
JB真是慢死了,VMware编译了半天还没有搞完
9)在国家超级计算天津中心天河超算上再测试一下
9.1)
前面报了个什么CMAKE错误,好像是没有ninja
加载ninja-1.10.2-gcc-8.5.0-pfvjk4l即可
module load ninja-1.10.2-gcc-8.5.0-pfvjk4l
- ninja-1.10.2-gcc-8.5.0-pfvjk4l
9.2)缺少python 3.8及以上
-- flang project is enabled
CMake Error at /fs2/software/spack/optv018/linux-rhel8-icelake/gcc-8.5.0/cmake-3.23.1-e4c4mah/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Python3: Found unsuitable version "3.6.8", but required is
at least "3.8" (found /usr/bin/python3, found components: Interpreter)
Call Stack (most recent call first):
/fs2/software/spack/optv018/linux-rhel8-icelake/gcc-8.5.0/cmake-3.23.1-e4c4mah/share/cmake-3.23/Modules/FindPackageHandleStandardArgs.cmake:592 (_FPHSA_FAILURE_MESSAGE)
/fs2/software/spack/optv018/linux-rhel8-icelake/gcc-8.5.0/cmake-3.23.1-e4c4mah/share/cmake-3.23/Modules/FindPython/Support.cmake:3181 (find_package_handle_standard_args)
/fs2/software/spack/optv018/linux-rhel8-icelake/gcc-8.5.0/cmake-3.23.1-e4c4mah/share/cmake-3.23/Modules/FindPython3.cmake:490 (include)
CMakeLists.txt:975 (find_package)
解决方法:
查看有啥安装包
module av | grep -i python
intel-tbb-2020.3-gcc-9.4.0-6nvswbj py-python-dateutil-2.8.2-gcc-8.5.0-mzujxvc
intel-tbb-2020.3-intel-19.0.4.243-yfj7kp6 py-python-dateutil-2.8.2-gcc-9.4.0-vkg366p
libcroco-0.6.13-gcc-8.5.0-hr25o5z python-2.7.18-intel-19.0.4.243-7suzg66
libcroco-0.6.13-gcc-9.4.0-phm7hdo python-2.7.18-intel-19.1.2.254-lnkdtlw
libdc1394-2.2.6-gcc-9.4.0-2mhxr35 python-3.9.7-intel-19.1.2.254-ktoctpo
libdrm-2.4.110-gcc-8.5.0-jbgqeik python-3.9.12-gcc-8.5.0-balcpow
libdwarf-20180129-gcc-8.5.0-pesaavu python-3.9.12-gcc-8.5.0-m2gb6bx
libdwarf-20180129-gcc-9.4.0-ssa6ru2 python-3.9.12-gcc-8.5.0-rweoubv
libedit-3.1-20210216-gcc-8.5.0-3xck2qs python-3.9.12-gcc-9.4.0-2uno5yc
libedit-3.1-20210216-gcc-9.4.0-3umrnor python-3.9.12-gcc-9.4.0-a3ewpjw
libedit-3.1-20210216-intel-19.0.4.243-o62rpze python-3.9.12-gcc-9.4.0-u37vpnm
module load python-3.9.12-gcc-8.5.0-rweoubv加载其中一个。
10)还是这个cmake命令,好像没有遇到什么问题
perl
cmake -S llvm -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/fs2/home/***/llvm/install -G Ninja -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld;lldb;bolt;mlir;flang;openmp;polly" -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_ASM_COMPILER=/usr/bin/gcc
也挺久的。
11)
查看build文件夹
ls
benchmarks CMakeCache.txt cmake_install.cmake docs lldb-test-build.noindex tablegen_compile_commands.yml unittests
bin CMakeDoxyfile.in compile_commands.json examples pdll_compile_commands.yml test utils
build.ninja CMakeDoxygenDefaults.cmake CPackConfig.cmake include projects third-party
cmake CMakeFiles CPackSourceConfig.cmake lib runtimes tools
存在build.ninja
12)
所以直接ninja -j2或者多少就行。
我在国家超算天津中心的机器上再测试一下哈
nohup ninja -j8 &
提交到后台
查看是否运行:
jobs -l
1\]+ 1473137 Running nohup ninja -j8 \& > \[258/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherGen.cpp.o > > \[259/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/DisassemblerEmitter.cpp.o > > \[260/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/ExegesisEmitter.cpp.o > > \[261/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/DAGISelMatcherEmitter.cpp.o > > \[262/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAPacketizerEmitter.cpp.o > > \[263/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/DFAEmitter.cpp.o > > \[264/10199\] Building CXX object utils/TableGen/CMakeFiles/llvm-tblgen.dir/llvm-tblgen.cpp.o > 8进程编译比虚拟机中2进程编译 要快得多。  在物理机上真的要快很多。