【问题标题】:Numba installation and "make check-all"Numba 安装和“make check-all”
【发布时间】:2013-07-15 04:53:58
【问题描述】:

我一直在尝试在虚拟环境中安装 numba。 Numba 需要 llvm 以及似乎是 llvmpy 的 Python 包装器。我使用following steps成功安装了它:

wget http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz
tar zxvf llvm-3.2.src.tar.gz
cd llvm-3.2.src
./configure --enable-optimized --prefix=/opt
REQUIRES_RTTI=1 make
make check-all
sudo REQUIRES_RTTI=1 make install

git clone git://github.com/llvmpy/llvmpy.git
cd llvmpy
sudo LLVM_CONFIG_PATH=/opt/bin/llvm-config /path/to/environment/bin/python setup.py install

python -c "import llvm; llvm.test()"

但是,我想知道正确的程序是什么。例如,在REQUIRES_RTTI=1 makesudo REQUIRES_RTTI=1 make install 行中,变量REQUIRES_RTTI 被重复。有必要吗?

根据numba的文档,推荐执行REQUIRES_RTTI=1 make install,llvmpy推荐执行REQUIRES_RTTI=1 make,所以略有不同。我真的不知道每个步骤在做什么,所以我希望能对正在发生的事情进行一般性解释,以及所有这些步骤是否都是绝对必要的。

此外,make check-all 是什么?我已经看到它在与 llvm 相关的问题中特别相关,但我不知道它的目的是什么。

llvmpy 文档中的另一个建议是使用不同的目录(--prefix)进行安装。为什么这是推荐的方法?

非常感谢

【问题讨论】:

    标签: makefile numba


    【解决方案1】:

    以下几行

    REQUIRES_RTTI=1 make
    sudo REQUIRES_RTTI=1 make install
    

    使用设置被调用进程环境的方式,不修改被调用进程的环境(如export REQUIRES_RTTI=1的情况);来自bash manual

    可以扩充任何简单命令或功能的环境 暂时通过在它前面加上参数分配。这些赋值语句只影响 该命令看到的环境。

    建议使用此设置,因为来自LLVM docs:

    将 REQUIRES_RTTI=1 添加到您的环境中 在运行 make 时重新启用它。这将允许用户构建 启用 RTTI 并且仍然从 LLVM 类继承。

    根据 llvmpy 文档,需要 RTTI。

    所以,忘记这个“复杂性”和使用“sudo”进行安装的标准要求,步骤是标准的:

    ### generating makefile:
    ./configure --enable-optimized --prefix=/opt
    ### building core libraries (make without target is the same as "make all")
    make
    ### check-all is a makefile target that is used to run regression tests (according to LLVM docs) 
    make check-all
    ### installing the libraries to the place where other tools / libraries can find them:
    make install
    

    【讨论】:

    • 很好的解释。几个问题。我需要在 make 和 make install 中添加 REQUIRES_RTTI=1 吗?那么那些只写“REQUIRES_RTTI=1 make install”的指令有错吗?
    • @RobertSmith 我查看了 makefile.rules 并发现这个环境。变种。仅影响编译标志(即“make”阶段)。所以,很可能你是对的(make install 不需要设置 REQUIRES_RTTI),但如果不测试两种方法并进行比较,我不能 100% 确定。
    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2013-01-13
    • 1970-01-01
    相关资源
    最近更新 更多