clang编译mysql(Ubuntu10 64位)

编译安装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的脚本

 

 

时间: 2024-10-30 02:53:59

clang编译mysql(Ubuntu10 64位)的相关文章

32位-安卓mk文件如何指定编译32还是64位?

问题描述 安卓mk文件如何指定编译32还是64位? 如题,想编一个so,但出来的32位的,请问如何在mk中指定,使之生成64位的呢? 解决方案 LOCAL_CFLAGS += -m64或者 LOCAL_CFLAGS += -m32

编译安装mysql(Ubuntu10 64位)

选用较好的编译器和较好的编译器选项,这样应用可提高性能10-30%,这个对大多数程序都非常重要 Mysql的编译,不同的版本具体的配置方式是有差别的 旧版的配置形式参考 这个形式主要是使用configure,具体参考 http://www.cnblogs.com/hemhem/archive/2011/03/14/2087481.html  http://blog.csdn.net/bing19880122/article/details/5830650  http://flyingdutchm

clang LLVM 介绍和安装(Ubuntu10 64位)

http://www.csdn.net/article/2013-11-27/2817632 的对Stanley B.Lippman采访提到clang的一些优点,以前程序员杂志也写过,为了提高系统的性能决定试试. clang的优点有很多的资料介绍,经过试用简要总结几点 1 速度开 2 C++11支持好 3 编译严格,出错信息比gcc明确 ... C++11http://product.china-pub.com/3801275 深入理解C++11:C++11新特性解析与应用https://www

GO 1.5 代码编译安装 [centos7 64位]

2015年8月,Go 1.5 正式发布,这是 Go 的第六个重要版本. 此版本包括大量重大改进,编译工具链从 C 转换到 Go,从 Go 代码库中完全移除 C 代码.完完全全重新设计了垃圾收集器,减少垃圾收集器的停顿时间.改进 scheduler,允许修改默认 GOMAXPROCS 值(并发执行 goroutines 数量),可以从 1 修改到逻辑 CPUs 的数量.改进 linker,允许分布式 Go 包作为分享库链接到 Go 程序,可以构建 Go 包到归档或者分享库,可以链接或者通过 C 程

PHP和MySql中32位和64位的整形范围是多少_php实例

一个字节有8位,所以32位int型占用32位/8位=4个字节,64位int型占用64位/8位=8个字节. 32位,64位无符号整型最大值: 2^64-1 = 18446744073709551615 2^32-1 = 4294967295 32位,64位有符号整型最大值: (2^32)/2-1 = 2147483647 (2^64)/2-1 = 9223372036854775807 减1是因为整型包括0. 64位Ubuntu 14.04,PHP_INT_MAX的值为92233720368547

如何在linux 32位机器编译64位程序

编译64位程序,不一定要编译机器是64位的,但是32位机器默认安装的gcc编译环境还是不能用来编译64位程序. 编译64位程序,需要加上-m64编译器参数,默认安装的gcc已经支持该参数,但是缺少64位机器指令相关的文件,所以不能编译,会出现下面的错误 [plain] view plain copy   In file included from /usr/include/features.h:378,                    from /usr/include/assert.h:

CentOS 64位上编译 Hadoop2.6.0

由于hadoop-2.6.0.tar.gz安装包是在32位机器上编译的,64位的机器加载本地库.so文件时会出错,比如: java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V  所以需要重新编译 1.编译环境 yum install cmake lzo-devel zlib-devel

解决编译内核模块helloworld.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持问题,未编译对64位的支持

Makefile内容: KERNELDIR ?=/root/Desktop/work/TI/linux-3.2.0 PWD := $(shell pwd) obj-m += helloworld.o default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules clean: @rm -f *.o *.ord* *.sy* *.mod.* *.ko clean标记中的@表示,执行命令的时候,终端上面不打印rm -r xxx.xx make出错信息: [root

64位下编译的C dll 调试通过, 拷贝到32位机下运行无法找到dll

问题描述 C#中需要调用DLL(C编写的),C#和CDLL都是的同一台机器上编译的,64位但是当把exe拷贝到其他32位机器上时,提示找不到dll.(我是把工程bin/debug路径下的所有文件拷贝过去运行的)试过相对路径,将exe和dll放到同一个目录下,试过绝对路径D:\logDLL.dll试过另一种写法的绝对路径D:/logDLL.dll以上3中情况,在64位机器上,都可以运行但是在32位机器上都提示找不到dll文件C#与DLL编译平台选择的是32位,32位机器和64位机器都是win7sp