首页 > 解决方案 > 使用从源代码构建的 clang-11 编译 hello world 失败

问题描述

我从 docker 容器中的源代码构建了 llvm+clang+lld。

% CC=$HOME/toolchains/bin/gcc CXX=$HOME/toolchains/bin/g++ \
cmake …/llvm -G “Unix Makefiles” \
-DLLVM_ENABLE_PROJECTS=“clang;lld” \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLLVM_TARGETS_TO_BUILD=“X86” \
 -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,$HOME/toolchains/lib64 -L$HOME/toolchains/lib64"

% make -j && sudo make install

然后我尝试用clang编译一个hello world程序,我得到了错误信息:

// test.c
#include <stdio.h>

int main(int argc, char** argv) {
  printf(“hello\n”);
  return 0;
}
% clang test.c
error: unknown target CPU 'x86-64’

我的构建过程有问题吗?

llvm 版本是 11.0.0 版本。

$HOME/toolchains 下的 gcc 版本是 5.2.0。

我的码头工人版本是:

Client:
Version: 17.06.2-ce
API version: 1.30
Go version: go1.8.3
Git commit: e046fc5
Built: Tue Oct 17 02:06:56 2017
OS/Arch: linux/amd64

Server:
Version: 17.06.2-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.3
Git commit: e046fc5
Built: Tue Oct 17 02:09:18 2017
OS/Arch: linux/amd64
Experimental: false

标签: c++dockerclangllvm

解决方案


推荐阅读