如何强制pip在OSX上使用GCC?

时间:2017-04-02 02:49:07

标签: python bash gcc pip clang

OSX上有点刺激性问题。我试图安装的python程序需要GCC。

建议的调用是:

int main () {
    double a,b,N,increment,value;
    value=0;
    cout<< "enter values for (a,b,N)";
    cin>>a;
    cin>>b;
    cin>>N;
    increment= (b-a)/(N-1);
    for (int i =0;i<=b;i+=increment){
    value = value+i;    
    }
    double sivalues[value];
    for (int x=a;i<=b;i+=increment){
        sivalues[a]=si(x);
        cout<<"si("<<x<<") = "<< sivalues[a];
    }

然而,这会导致错误,建议OSX决定运行CLANG:

env CC=/usr/local/bin/gcc-6 pip install angr 

这是有道理的:

clang: error: unknown argument: '-malign-double'

尽管如此:

$ env CC
clang: error: no input files

当然我试过了:

$env 
...
cc=/usr/local/bin/gcc-6
CC=/usr/local/bin/gcc-6

但当然:

$CC-/usr/local/bin/gcc-6 
env $CC pip install angr 

尽管env告诉我刚刚运行

$ env $CC pip install angr
gcc-6: error: pip: No such file or directory
gcc-6: error: install: No such file or directory
gcc-6: error: angr: No such file or directory
gcc-6: fatal error: no input files

导致更多

$ pip install angr 

那我在这里错过了什么? OSX是否讨厌那些糟糕的GCC或者我在这里错过了一些基本的shell fu?

1 个答案:

答案 0 :(得分:2)

您的测试命令env $CC pip install angr失败,因为美元符号会评估变量并且它有效地运行了gcc而不是pip!

Inian的建议命令env CC="/usr/local/bin/gcc-6 pip install angr"的结尾引用位置错误,使其成为无操作。

env CC=/usr/local/bin/gcc-6 pip install angr的语法是正确的,但gcc错误可能是在angr或它所依赖的26个包中的任何一个,例如ana,bintrees,cachetools,capstone,cooldict,z3-solver ...... / p>

让我们回到 clang 。看看github上的angr问题,看来z3-solver的clang-incompatibility在5月10日修复,这个问题发布一个月后。请参阅:https://github.com/Z3Prover/z3/issues/1016

所以现在使用macOS 10.13 High Sierra + Xcode 9.0.1上的最新点(pip install --upgrade pip)可以解决这个问题:

pip install --user angr

好吧,上面的命令实际上默认使用二进制包,所以当然它可以工作。在10分钟后,您可以通过卸载所有点数来验证编译路径是否适用于clang:

pip install --user --no-cache-dir --no-binary :all: angr