TFS编译
来源:互联网 发布:淘宝促销商品关键词 编辑:程序博客网 时间:2024/05/18 18:00
我是64位UBUNTU,gcc 4.7,官方说是要4.1.2. 但不知道怎么回事,我就硬是没有在机子上装成功GCC4.1.2,只好硬着头皮再GCC 4.7上继续了。
安装libuuid-devel,zlib-devel,mysql-devel三个开发包。
ubuntu 上 mysql-devel 库的名字叫 libmysqld-dev,别弄错了
sudo apt-get install libmysqld-dev
浪费了几天的时间想安装zlib-dev 原来是因为UBUNTU下包名变了
sudo apt-get install zlib-dev 变为 sudo apt-get install zlib1g-dev
安装libuuid-devel,apt-get install e2fsprogs
安装tb-common-utils
在/etc/profile中加入
TBLIB_ROOT=****
export
TBLIB_ROOT./configure --prefix /home/zhy/softeware/tfsi
抱readline错误
- 解决方法,安装apt-get install libreadline-dev
抱tcmalloc错误
configure: error:
in
`/home/zhy/softeware/tfs':
configure: error: tcmalloc link failed (--without-tcmalloc to disable)
解决方法:因为我事64位的,查到说要装其他东西
64位操作系统请先安装libunwind库,32位操作系统不要安装。libunwind库为基于64位CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API。
apt-get install libunwind8
apt-get install libunwind8-dev 我装的时候用cache搜出来是带8
安装google-perftools的时候,几次都没成功,不知道装那个,搜出来好几个,于是我就用下面的全装。
apt-get install libgoogle-perftools*
apt-get install google-perftools
可用lsof -n |grep tcmalloc查看是否安装成功
make 时候报错 首先第一个错误就是各种类型转换报错。同时后面还跟了个 [-Werror=conversion]。
猜测是GCC编译时候警告错误,
解决方法:于是就在configure.ac和Makfile.am文件中把CFLAGS的werror选项去掉。
重新configure成功。
make时候 uuid.h相关错误:
安装uuid-dev失败
注意在安装uuid-dev的时候不同系统安装的名称不一样,使用centeros的同学需要安装yum install libuuid-devel,ubuntu的同学可以直接安装apt-get install uuid-dev
同样是make时候 报错 session_util.cpp 和session_util.h中SessionUtil::gene_session_id函数不匹配,
查看session_util.h中本来定义的int32却变成了int.
不知道为什么,猜测是GCC编译的时候做了什么事情,于是就把configure文件中的GCC选项cflags的内容全去掉。重新configure,后来居然报错:在session_util.h找不到变量int32的定义,但为什么session_util.cpp又能成功呢?
解决方法:在session_util.h中(加入 #include<tbsys.h> #include<stdlib.h>。
make 错误 'uint64_t* {aka long long unsigned int*}' to 'uLongf* {
找到对应文件,加强制类型转换;我报错文件是 src/new_client/tfs_meta_helper.cpp 281行
make错误atomic_inc参数类型错误,uint32_t uint64_t.
vim src/nameserver/client_request_server.cpp 的725,722行,我还是用的强制转换
ns_define.cpp:196:70: 错误: 对‘atomic_inc(uint64_t*)’的调用没有匹配的函数
还是强制转换
还是make时候 报错 /usr/bin/ld: cannot find -ljemalloc
解决方法:安装apt-get install libjemalloc-dev
还是make怎么这么多错误,
undefined reference to `uuid_generate‘
undefined reference to `uuid_unparse'
- undefined reference to `uncompress'
- undefined reference to `uuid_generate'
- undefined reference to `uuid_unparse'
到 src/tools/nameserver中修改Makefile
267行 LIBS = -lmysqlclient -lrt -lpthread -lm -ldl -lc 加 -lz -luuid
277行 MYSQL_LDFLAGS = -L/usr/lib/i386-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl 加 -luuid
提示没有curses.h文件
安装sudo apt-get install libncurses5-dev
- TFS编译
- TFS编译
- TFS自动化编译研究
- sles10编译安装tfs
- tfs自动编译msbuild参数
- TFS
- TFS
- TFS
- CentOS 6.5下编译安装TFS
- TFS自动编译项目文件的Target修改
- [BAT]VS自动取TFS代码,自动编译并打包
- TFS - nginx-tfs模块
- 淘宝分布式系统-TFS学习记录-第一天(编译安装2.6版本)
- 在CentOS7.3上编译gcc4.1.2 (gcc4.1.2、淘宝TFS)
- 安装TFS
- TFS常用命令
- tfs 连不上
- TFS 2008
- 如何搭建安全的WEB服务器
- 卷积
- C/C++中int/long/float/double数值类型与字符串互相转换
- spring技术详解
- 宏的一些小技巧用法,控制打印输出,随机色
- TFS编译
- 【EasyUI】combotree和combobox模糊查询
- SDWebImage内部实现过程
- ios开发-popToViewController视图操作
- 机器学习和计算机视觉相关的数学
- 配置ssh以及ssh的安全管理
- 关于线程同步的详解
- js cookie
- 常用函数