centos7编译c(c语言编译过程)
centos6编译及安装ZLMediaKit解析
centos6安装ZLMediaKit
ZLMediaKit的作者是使用Ubuntu 16开发的,但是如果要跑到测试甚至于生产上必须要部署到centos上,笔者主要是使用centos6(centos7除了下面rpm包外,编译组件操作一致),因为有需求就装完给大家分享一下。
1.安装基础编译环境
1.1 gcc-5.4的安装
注意:centos6默认gcc的版本是gcc-4.4,此时需要升级到gcc-5.4,网络上说的升级到gcc-4.7以上以支持c11是错误的,实测gcc-4.8无法成功cmake出相关基础配置框架
wget
tar-zxvf gcc-5.4.0.tar.gz
cd gcc-5.4.0
./contrib/download_prerequisites
cd..
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
../gcc-5.4.0/configure–enable-checking=release–enable-languages=c,c++–disable-multilib
make&& make install(我的虚拟机是双核处理器2.5G内存,需要1个小时,早知多配置几个核心。。。等死了)
gcc-v此时系统gcc会自动变成gcc-5.4版本
1.2 cmake-3.10安装
暂时没有测试cmake3其他版本是否能安装,目前使用的3.10与作者版本一致
tar-zxvf cmake-3.10.0-rc4.tar.gz
cd cmake-3.10.0
./bootstrap
gmake&& gmake install
yum remove cmake
ln-s/usr/local/bin/cmake/usr/bin/cmake
ln-s/usr/local/bin/cpack/usr/bin/cpack
ln-s/usr/local/bin/ctest/usr/bin/ctest
#或者是写环境变量
export PATH=$PATH:/usr/local/bin
#配置进/etc/profile之后source也可以验证:
# cmake–version
cmake version 3.10.0-rc42.编译ZLMediaKit
2.1下载代码
git clone–depth=1
cd ZLMediaKit
git submodule init
git submodule update2.2安装依赖性
yum install mysql-devel.x86_64 openssl-devel ffmpeg ffmpeg-devel另外三个rpm包也需要安装,链接如下:
libx264-devel()
wget
libfaac-devel()
wget
libmp4v2-dev()
wget 编译
# mkdir linux_build
# ln-s linux_build/ build
# cd build
# cmake..
— The C compiler identification is GNU 5.4.0
…
— Configuring done
— Generating done
— Build files have been written to:/usr/local/src/install_pack/ZLMediaKit/build
# make编译好可执行的文件在ZLMediaKit/git/ZLMediaKit/build/bin下面
3.运行编译好的ZLMediaKit
cd ZLMediaKit/git/ZLMediaKit/build
./bin/MediaServer
# netstat-antlp| grep./MediaServer
tcp 0 0 0.0.0.0:555 0.0.0.0:* LISTEN 26771/./MediaServer
tcp 0 0 0.0.0.0:1936 0.0.0.0:* LISTEN 26771/./MediaServer
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26771/./MediaServer
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 26771/./MediaServer
tcp 0 0 0.0.0.0:322 0.0.0.0:* LISTEN 26771/./MediaServer
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 26771/./MediaServer如果要修改端口,在编译前,找到ZLMediaKit/git/ZLMediaKit/server/main.cpp
在namespace mediakit{下面进行对各服务器端口号的修改
总结
以上所述是小编给大家介绍的centos6编译及安装ZLMediaKit解析,大家如有疑问可以留言,或者联系站长。感谢亲们支持!!!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
redhat跟centOS的区别
首先因为Redhat是基于Linux内核的,Linux本身就是开源的,根据Linux内核遵循GPL v2协议的规定,Redhat系统必须开源它的源码,事实上Redhat的编译版本和源码都是可以免费下载的。所以有人就下载了Redhat的源码,把Redhat的logo之类的标志、版本信息去掉后,自己编译成一个系统,并上传到网上供大家下载使用,后来成立了一个组织专门做优化这个自己编译的操作系统,并把这个系统叫做:Community enterprise operating system,取第一个单词的首字母C和第二个单词的前三个字母ent,简称Cent操作系统,而我们知道操作系统一般都用OS做简称,故这个系统叫:CentOS,它的本意就是“社区版企业操作系统”,就是网上社区的成员拿红帽的代码编译的。
所以,CentOS其实就是Redhat,可以说它们没有区别,唯一的区别是CentOS去掉了Redhat的商标(logo)之类的版权信息,另外,编译的时候,因为社区是民间组织,我们常说高人在民间,所以CentOS社区的人在编译Redhat源码时可能发现了一些错误,他们会对这些错误进行修正。
有人可能会觉得奇怪,Redhat公司的人这么辛苦写出来的源码,却还必须遵守GPL协议免费公开发到网上供大家下载使用,那Redhat还怎么赚钱?答案是,Redhat系统本身也是免费的,它的系统根本就不要钱,要钱的是“服务”和“商业授权费”,当公司使用Redhat系统(也就Redhat for Enterprise Linux,即红帽企业操作系统)时,你必须给Redhat公司交“授权费”,个人使用没人管你,因为它的系统你随时可以免费下载,但是公司使用它时,如果被它发现了你没有给授权费,就会被起诉赔钱,另外就是你可以使用Redhat的“服务”,服务器出问题他们的专业人员可以帮你处理,这也是收费的。
又有人可能会觉得很奇怪,既然RHEL系统免费让你下,源码也免费让你下,但为什么你用RHEL系统就要授权费?因为RHEL系统是Redhat公司开发的,人家有版权,但你交了授权费之后,如果系统出现什么大的问题,Redhat公司应该也是要赔你公司钱的,你可以选择不用RHEL系统,而是用CentOS系统,因为根据前面所说,CentOS其实就是Redhat系统嘛,只不过去掉了Redhat版权信息,改成了CentOS,而CentOS是社区版,是免费的。但是由于CentOS是免费的,如果你使用CentOS有什么重大问题造成公司有重大损失,CentOS是不会赔你钱的,因为CentOS本身并不是公司,而是一个民间组织,它们的存在,实际上就是因为有很多人认为自己技术够牛,不需要Redhat公司来做技术支持,也不想花钱买RHEL系统的使用授权,所以他们自己使用Redhat的源码编译出来CentOS,并且由于代码不是他们自己写的,所以他们不能对CentOS收费,因为他们本身就是为了不使用收费的RHEL才自己编译的CentOS,所以他们自然也不会去收费(也无权收费),但因为他们不收费,所以也不需要对使用者负责,也就是说使用者因为CentOS出什么问题对公司造成损失,他们是不需要负责的,你既然想省钱就别怕出事。
然而CentOS实际上是比较稳定的,也不会出什么事,所以目前国内绝大部分互联网公司都使用CentOS系统,但也有使用Ubuntu的,国外用Ubuntu的更多,全世界用Ubuntu做服务器的比用CentOS的多,但在中国用Ubuntu的比用CentOS的少,原因可能是因为中国最早那批会Linux的人都学的红帽(Redhat)系统,他们教出来的人自然也都是用红帽的,而CentOS其实就是红帽,用法肯定也基本上一样,所以大家相互学的都是这个系统的相关知识,导致国内大部分互联网公司都用CentOS做服务器。
centos7怎么编译安装gcc-c++
方法/步骤
1
yum install glibc-static libstdc++-static-y
安装c和c++的静态库(据说如果系统中缺少libc.a和libstdc++.a编译时会出错,但是我没有那么多闲情逸致去试,实践过的朋友可以回复一下,分享一下经验,让大家都长长见识)
2
下载解压gcc,我的gcc目录是gcc-4.8.0
3
进入gcc目录,执行:
./contrib/download_prerequisites
这个神奇的脚本文件会帮我们下载、配置、安装那三个依赖的库。可以节约我们大量的时间和精力。
4
你以为这三个库自动下载了、自动make install了就没事了吗?错!
很多人在编译gcc的时候出现各种奇奇怪怪的错误就是这步没有做好。
它们还不在.so文件的搜索路径里面,需要加进去,最后切记切记一定要执行一下ldconfig。
大致做法为:
1,找到你的共享库文件被install到哪个目录了(updatedb+locate命令)。
2,如果你的库不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享库的路径
3,如果在2中添加了共享库路径,切记要执行一下ldconfig,更新响应cache文件让系统能找到你的共享库。
5
建立临时目录,这个目录用以存放编译时的大量临时文件,是文档要求中必须的。
我是在gcc-4.8.0下建立了一个名为gcc-build-4.8.0的目录,进入它。
mkdir gcc-build-4.8.0
cd gcc-build-4.8.0
配置gcc编译选项
6
强烈建议阅读INSTALL目录下的说明文档,尤其是configure.html,以确定你的编译选项。
比较基本的选项有--enable-languages,说明你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。
网上还说了什么--with-gmp、--with-mpfr、--with-mpc这三个选项,但是如果你3,4步做好了,就不要配了,反之你还是老实点吧别抱侥幸心理了。
调用gcc-4.8.0目录下的configure文件:
例如:
../configure--enable-checking=release--enable-languages=c,c++--disable-multilib
7
执行
../make#不解释
执行编译命令(#在8核的虚拟机上进行编译,每个核分配2个编译任务)
make-j16
make install编译过程CPU核基本100%占用,整个编译用时11分50秒。
检查gcc版本
#你就等吧少年,建议晚上睡觉前做
当然上面三步一定要在前一步顺利结束的情况下进行,如果哪一步出错了,结果都显示error了,就不要再做后面的了。在shell的输出里搜索"error"看具体的出错点是什么,baidu、google一下为什么。
如果你求稳的话,可以在make install之前先make check一下。