zoukankan      html  css  js  c++  java
  • clang编译mysql(Ubuntu10 64位)

    编译安装mysql(Ubuntu10 64位) http://www.cnblogs.com/2018/p/3482259.html 这个介绍了gcc形式编译安装mysql

    那我们使用clang进行编译一下看看具体的效果

    编译安装mysqlUbuntu10 64已经描述了mysql的编译安装情况,由于clang的性能比较高,现在实验一下mysqlclang编译

    经试验,主要解决如下的问题即可

    v ABI_CHECK

    n 这个问题表现是配置完成后,编译时会出现ABI的报错,google了一下,由于官方没有直接clang的支持,因此可以忽略,网上有人这样用过

    v Clang编译器的引入

    n 或者在cmake的配置文件修改,或者使用环境变量进入,使用一个简单的形式如下,引入clang编译器即可

    export CXX=clang++

    export CC=clang

    最初我看了一下clang++连接到的就是clang,因此我想当然的认为直接都设置为clang就行,不过编译会出错提示AES undefined reference operator delete(void*),具体看了一下原因,如下的地址

    clang vs calng++

    http://stackoverflow.com/questions/14226840/c-11-threads-with-clang

     

    如上处理就可以了编译和安装了,具体的脚本如下:

    if [ -d mysql-5.6.15 ]; then

    echo "mysql代码已经存在了"

    else

    tar xzf mysql-5.6.15.tar.gz

    fi

    #cmake/abi_check.cmake ABI检查的问题,可以跳过

    # LINE30 SET(RUN_ABI_CHECK 0)

    cp -f abi_check.cmake mysql-5.6.15/cmake/abi_check.cmake

     

    mkdir -p build

    pushd build

     

    if [ -f CMakeCache.txt ]; then

    make clean

    rm -f CMakeCache.txt

    fi

    #使用clang编译

    export CXX=clang++

    export CC=clang

     

    #编译时看看是否启用了clang

     

    cmake ../mysql-5.6.15 

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 

    -DCMAKE_BUILD_TYPE=Release 

    -DSYSCONFDIR=/etc 

    -DINSTALL_SBINDIR=/usr/local/mysql/bin 

    -DMYSQL_DATADIR=/usr/local/mysql/data 

    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 

    -DENABLED_LOCAL_INFILE=1 

    -DMYSQL_TCP_PORT=3306 

    -DDEFAULT_CHARSET=utf8 

    -DDEFAULT_COLLATION=utf8_general_ci 

    -DWITH_EMBEDDED_SERVER=0 

    -DWITH_MYISAM_STORAGE_ENGINE=1 

    -DWITH_INNOBASE_STORAGE_ENGINE=1 

    -DWITH_PARTITION_STORAGE_ENGINE=1 

    -DWITH_ARCHIVE_STORAGE_ENGINE=0 

    -DWITH_BLACKHOLE_STORAGE_ENGINE=0 

    -DWITH_MEMORY_STORAGE_ENGINE=0 

    -DWITH_PERFSCHEMA_STORAGE_ENGINE=0 

    -DWITH_EXTRA_CHARSETS=none 

    -DWITH_DEBUG=0 

    -DWITH_ASAN=1 

    # -DENABLE_DOWNLOADS=0 

     

    #end of cmake

    if [ $? -ne 0 ];

    then

    echo -e "e[1;41m cmake's config error! e[0m"

    exit 1

    fi

    make

    if [ $? -ne 0 ];

    then

    echo -e "e[1;41m cmake done! e[0m"

    exit 1

    fi

     

    popd

    echo "The package is in build directory!"

     

    参考资料

    http://pan.baidu.com/s/1Cc7cr source/mysql5.6 下是相关的资料

    mysql_clang.sh my.cnf abi_check.cmake 使用clang编译和安装mysql的脚本

     

  • 相关阅读:
    ThinkPHP如果表名有下划线需要用Model应该怎么做?
    JS三级联动实例
    Sublime的使用!emmet常用快捷键梳理
    MUI极简的JS函数
    Atitit 自然语言处理原理与实现 attilax总结
    Atitit 自然语言处理原理与实现 attilax总结
    Atitit  自动化gui 与 发帖机 技术
    Atitit  自动化gui 与 发帖机 技术
    Atitit 衡量项目的规模
    Atitit 衡量项目的规模
  • 原文地址:https://www.cnblogs.com/2018/p/3483192.html
Copyright © 2011-2022 走看看