我正在尝试使用Clang构建CPython,具有非常具体的要求:
我尝试将env变量CC
设置为我的clang可执行位置(即/opt/llvm/5/bin/clang
,但./configure
命令失败并显示以下内容:
configure: error: C compiler cannot create executables
我应该设置哪些标志才能使此版本生效?
答案 0 :(得分:1)
正如OP上的评论者所指出的,您可以使用clang编译cpython。这是Dockerfile形式的可复制说明。
FROM ubuntu:16.04
WORKDIR /opt/cpython-2.7.14
RUN apt-get update -qq \
&& apt-get install --yes build-essential curl \
# Install clang
&& curl -fsSL https://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu16.04.tar.xz \
| tar xJ -C /usr/local --strip-components 1 \
&& curl -fsSL https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz \
| tar xz --strip-components 1 \
&& CC=/usr/local/bin/clang ./configure --prefix /usr/local/cpython-2.7.14 \
&& make \
&& make install
ENTRYPOINT ["/usr/local/cpython-2.7.14/bin/python"]
docker build --tag cpython:2.7 .
docker run --rm cpython:2.7 --version
# Python 2.7.14
很难说出OP的原始问题是什么,因为这似乎与clang安装有关。查看配置日志将提供更多信息。
免责声明:Python 2已到使用寿命,而ubuntu 16.04将于2021年4月终止。
答案 1 :(得分:-2)
尝试将环境变量CC设置为我的clang可执行文件位置
在Linux上,在Bash中定义一个别名,如下所示:
alias cc="clang"
在系统上,我将其设置为alias cc="clang-11"
此外,请确保已在系统上安装了所有clang和llvm软件包。