致云C++平台模块、公共代码库均只在特定环境下编译运行,因此致云模块的开发、测试、部署必须严格按照要求执行,否则将得到不可预期的结果
同时,提交版本库的代码、项目必须在本规则要求统一的环境下编译通过,以确保所有开发团队获取代码后都能快速顺利编译,提高开发效率,所有不满足要求的提交都将视为不合格代码返回修改。
编译环境要求如下:
编译目录要求
安装好操作系统后,应当创建"/home/develop/"目录,所有模块代码、依赖库都应当安装到该目录下,以便统一管理和部署,如:
/home/develop/boost_1_57_0 ;boost库 /home/develop/framework ;致云公共库 /home/develop/control_server ;cs代码
作为编译环境的主机应当能够正常访问网络
需要提前下载以下文件:
将gcc-4.9.2.tar.bz2和boost_1_57_0.tar.gz保存到/home/develop/下
将code blocks安装源直接安装好
确保yum指令已安装并能正常工作,在命令行执行以下指令安装相关依赖系统库:
yum install wget gcc gcc-c++ zlib-devel gtk2-devel zip libart_lgpl-devel libXtst-devel -y
以上步骤成功完成后,开始进行编译环境安装
致云代码使用gcc 4.9.2编译生成,将gcc-4.9.2.tar.bz2保存到/home/develop目录,根据以下步骤进行编译安装
#cd /home/develop ;解压源代码 #tar jxvf gcc-4.9.2.tar.bz2 ;如果下载了.tar.gz则执行以下指令 #tar zxfv gcc-4.9.2.tar.gz ;下载依赖包 #cd gcc-4.9.2 #./contrib/download_prerequisites ;创建编译中间目录 #cd .. #mkdir gcc-obj #cd gcc-obj ;配置编译参数 #../gcc-4.9.2/configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++ --disable-dssi --enable-libgcj-multifile --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --disable-multilib ;指定编译 #make ;如果编译主机为多核CPU,可使用多核编译,将以下指令中的n改为需要使用的核数,比如"make -j 4"使用4核编译,可以大幅度缩短编译时间 #make -j n ;安装 #make install
以上指令成功执行后,执行gcc -v,应当看到如下输出版本信息,则gcc编译器安装成功
gcc version 4.9.2 (GCC)
安装成功后,可以删除/home/develop下的gcc-4.9.2及gcc-obj两个中间目录以节约空间
成功安装从发布源网站 下载的安装源RPM后
可以从Xwindows的System->Administration->Add/Remove software中搜索opensource,看到OpenSource Cross Platform Free C++ IDE,下面标注为codeblocks_....
选择该软件包下载并安装相关依赖包即可在Application->Programming->Code::Blocks IDE中打开code blocks编写和查看代码
致云模块开发编译一般需要两部分依赖库:致云基础公共代码库framework封装了基本的平台框架代码,boost提供了c++11之外更丰富的应用代码库
致云基础框架库framework无需编译,直接文件形式就可以使用
framework包含两部分,include目录下是基础库的头文件定义,release和debug两个版本的库文件libzhicloud_public.a和libzhicloud_public_d.a
首先在/home/develop目录下创建framework子目录,将framework内容拷贝到该目录即可,目录内容如下:
/home/develop/framework/include :头文件定义 /home/develop/framework/libzhicloud_public.a :release静态链接库 /home/develop/framework/libzhicloud_public_d.a :debug静态链接库
复制完成后,直接在项目的包含、链接路径设定好framework目录就可以使用
boost由无需链接的hpp文件和需要链接的库组成,通常需要编译好库文件才能完整使用boost的功能
编译前,首先确保最新的gcc已经编译安装,然后将boost_1_57_0.tar.gz拷贝到/home/develop下,执行以下命令进行安装:
#cd /home/develop #tar zxfv boost_1_57_0.tar.gz #cd boost_1_57_0 #./bootstrap.sh ;编译release静态库 #./b2 toolset=gcc link=static variant=release threading=multi runtime-link=static stage ;编译debug静态库 #./b2 toolset=gcc link=static variant=debug threading=multi runtime-link=static stage
编译完成后会生成两个主要路径
/home/develop/boost_1_57_0/boost ;头文件存放目录,通常设置/home/develop/boost_1_57_0/为include搜索目录 /home/develop/boost_1_57_0/stage/lib ;链接库存放目录,通常设置该目录为链接搜索目录
codeblock: https://rpm.jenslody.de/centos-jenslody.de-0.2-2.el5.centos.noarch.rpm
boost: http://www.boost.org/users/history/version_1_57_0.html
gcc: https://gcc.gnu.org/gcc-4.9/