Linux下使用CMake进行编译的时候寻找Boost库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下使用CMake进行编译的时候寻找Boost库相关的知识,希望对你有一定的参考价值。

参考技术A 通过调用 find_package 可以找到头文件和所需要的库文件或者是一个CMake打包配置文件,

运行完后可以得到很多变量,下面列了一些主要的

可以在搜索package之前,通过设置一些变量来帮助boost库的查找

假如目标程序foo需要链接Boost库regex和system,编写如下的CMakeLists文件,

FindBoost

linux下源码编译安装mysql详解

linux下源码编译安装mysql详解

1.redhat5环境下,首先安装编译环境

yum groupinstall -y  "Development Libraries"   "Development Tools"

2.由于源码编译mysql需要cmake命令,所以先要编译安装cmake包

 首先下载cmake包,这里下载使用cmake-2.8.8.tar.gz

 tar xf cmake-2.8.8.tar.gz

 cd cmake-2.8.8

 ./configure 

 make && make install

3.使用cmake编译mysql

cmake指定编译选项的方式不同于make,其实现方式对比如下:

./configure       相当于     cmake .

./configure --help  相当于     cmake . -LH 或者 ccmake .

4.开始正式编译安装mysql,这里下载使用mysql-5.5.50.tar.gz

groupadd -g 306 mysql

useradd -g 306 -u 306 -M -s /sbin/nologin mysql

mkdir -pv /mydata

mount /dev/VG01/LV01 /dev/mydata  #新增一个LVM(省略)并将其挂载至/mydata

mkdir -pv /mydata/data

chown -R mysql.mysql /mydata/data

tar xf mysql-5.5.50.tar.gz

cd mysql-5.5.50

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

> -DMYSQL_DATADIR=/mydata/data \   #mysql数据存放路径

> -DSYSCONFDIR=/etc \

> -DWITH_INNOBASE_STORAGE_ENGINE=1 \

> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_READLINE=1 \

> -DWITH_SSL=system \

> -DWITH_ZLIB=system \

> -DWITH_LIBWRAP=0 \

> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

> -DDEFAULT_CHARSET=utf8 \

> -DDEFAULT_COLLATION=utf8_general_ci


make 

make install

下面安装如同通用二进制格式安装mysql,如不太熟悉可查看我前面博客

chown -R .mysql /usr/local/mysql/     #更改属组

scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

cp support-files/my-huge.cnf /etc/my.cnf 

cp support-files/mysql.server /etc/init.d/mysqld   #拷贝启动脚本

chkconfig --add mysqld

chkconfig mysqld on

service mysqld start

netstat -antlp | grep 3306    #查看mysql启动状态

ehco "/usr/local/mysql/bin" >> /etc/profile.d/mysql.sh  #修改mysql环境变量

source /etc/profile.d/mysql.sh

mysql                  #连接测试mysql

技术分享

5.编译安装mysql时常用选项解释


5.1.指定安装文件的安装路径时常用的选项:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DMYSQL_DATADIR=/data/mysql

-DSYSCONFDIR=/etc


5.2.默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,如下选项:

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

-DWITH_FEDERATED_STORAGE_ENGINE=1


5.3.若要明确指定不编译某存储引擎,可以使用类似如下的选项:

-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1


5.4.如若要编译进其它功能,则可使用类似如下选项来实现编译时使用某库或不使用某库:

-DWITH_READLINE=1

-DWITH_SSL=system  #开启ssl功能

-DWITH_ZLIB=system

-DWITH_LIBWRAP=0   #取消tcp_wrap功能


5.5.其它常用的选项:

-DMYSQL_TCP_PORT=3306

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DWITH_DEBUG=0

-DENABLE_PROFILING=1


5.6.如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean

rm CMakeCache.txt


本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1792039

以上是关于Linux下使用CMake进行编译的时候寻找Boost库的主要内容,如果未能解决你的问题,请参考以下文章

linux下cmake方式编译安装MySQL数据库

Linux(CentOS或RadHat)下MySQL源码安装

CMake基础教程(36)Linux交叉编译

linux下cmake编译opencv 为啥这么慢

Centos 6下使用cmake编译安装MariaDB

linux下源码编译安装mysql详解