当前位置:Gxlcms > mysql > clang编译mysql(Ubuntu1064位)_MySQL

clang编译mysql(Ubuntu1064位)_MySQL

时间:2021-07-01 10:21:17 帮助过:24人阅读

Ubuntu

bitsCN.com

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

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

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

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

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的脚本

bitsCN.com

人气教程排行