• mac中安装mysqlclient出错error: command 'clang' failed with exit status 1的解决办法


    在mac中使用pip安装mysqlclient遇到了以下问题

     In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:32:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/cdefs.h:807:2: error: Unsupported architecture
        #error Unsupported architecture
         ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:33:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/machine/_types.h:34:2: error: architecture not supported
        #error architecture not supported
         ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:52:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:55:9: error: unknown type name '__int64_t'
        typedef __int64_t       __darwin_blkcnt_t;      /* total blocks */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:56:9: error: unknown type name '__int32_t'
        typedef __int32_t       __darwin_blksize_t;     /* preferred block size */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:57:9: error: unknown type name '__int32_t'
        typedef __int32_t       __darwin_dev_t;         /* dev_t */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:60:9: error: unknown type name '__uint32_t'
        typedef __uint32_t      __darwin_gid_t;         /* [???] process and group IDs */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:61:9: error: unknown type name '__uint32_t'
        typedef __uint32_t      __darwin_id_t;          /* [XSI] pid_t, uid_t, or gid_t*/
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:62:9: error: unknown type name '__uint64_t'; did you mean 'uint64_t'?
        typedef __uint64_t      __darwin_ino64_t;       /* [???] Used for 64 bit inodes */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/_types/_uint64_t.h:31:28: note: 'uint64_t' declared here
        typedef unsigned long long uint64_t;
                                   ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:52:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:68:9: error: unknown type name '__darwin_natural_t'
        typedef __darwin_natural_t __darwin_mach_port_name_t; /* Used by mach */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:70:9: error: unknown type name '__uint16_t'
        typedef __uint16_t      __darwin_mode_t;        /* [???] Some file attributes */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:71:9: error: unknown type name '__int64_t'
        typedef __int64_t       __darwin_off_t;         /* [???] Used for file sizes */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:72:9: error: unknown type name '__int32_t'
        typedef __int32_t       __darwin_pid_t;         /* [???] process and group IDs */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:73:9: error: unknown type name '__uint32_t'
        typedef __uint32_t      __darwin_sigset_t;      /* [???] signal set */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:74:9: error: unknown type name '__int32_t'
        typedef __int32_t       __darwin_suseconds_t;   /* [???] microseconds */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:75:9: error: unknown type name '__uint32_t'
        typedef __uint32_t      __darwin_uid_t;         /* [???] user IDs */
                ^
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types.h:76:9: error: unknown type name '__uint32_t'
        typedef __uint32_t      __darwin_useconds_t;    /* [???] microseconds */
                ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:53:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types/_intptr_t.h:30:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/machine/types.h:37:2: error: architecture not supported
        #error architecture not supported
         ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:45:
        In file included from /Library/Developer/CommandLineTools/usr/lib/clang/12.0.0/include/stdint.h:52:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdint.h:53:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/_types/_intptr_t.h:32:9: error: unknown type name '__darwin_intptr_t'
        typedef __darwin_intptr_t       intptr_t;
                ^
        In file included from MySQLdb/_mysql.c:29:
        In file included from /usr/local/opt/mysql-client/include/mysql/mysql.h:46:
        In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/types.h:81:
        /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/machine/endian.h:37:2: error: architecture not supported
        #error architecture not supported
         ^
        fatal error: too many errors emitted, stopping now [-ferror-limit=]
        20 errors generated.
        error: command 'clang' failed with exit status 1
    
    

    解决方法

    export ARCHFLAGS="-arch x86_64"
    然后再次安装mysqlclient即可。

    原因

    可以看到最后的错误写的是clang出错,大概率是编译器的问题,中间还报错了几次,architecture not supported,我猜测应该是新版本的xcode command tool默认使用的是arm版本的编译方式,而如果是x86架构,则需要通过环境变量指定使用何种架构。

  • 相关阅读:
    java中CyclicBarrier的使用
    java并发中CountDownLatch的使用
    java中Locks的使用
    java 中的fork join框架
    java中ThreadPool的介绍和使用
    java中的daemon thread
    java中interrupt,interrupted和isInterrupted的区别
    java中的Atomic类
    怎么在java中关闭一个thread
    java中join的使用
  • 原文地址:https://www.cnblogs.com/trytoreachpeak/p/14747777.html
Copyright © 2020-2023  润新知