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一下。

阅读剩余
THE END