1.【文】鲲鹏916-ARM64架构源码gcc编译完整记录
2.OpenFAST | 搭建编译环境(RedHat/CentOS 7)
3.CentOS 6.2编译安装Nginx1.0.14+MySQL5.5.22+PHP5.3.10步骤分享
4.升级GCC版本到11.1
5.Ubuntu20.04 下手动编译安装gcc-6.3.0安装,源码多版本GCC 共存和切换
6.centos6.5怎么从压缩文件进入安装
【文】鲲鹏916-ARM64架构源码gcc编译完整记录
以下是安装关于ARM架构源码gcc编译的详细步骤记录: 首先,确保已经准备就绪,源码如果cmake未安装,安装需要进行安装。源码检查cmake版本以确认其是安装考核系统 源码否满足需求。 安装必要的源码依赖包,如isl、安装gmp、源码mpc、安装mpfr等,源码检查它们是安装否已成功安装。 针对gcc版本过低的源码问题,需下载并更新到7.3版本。安装下载并解压gcc7.3的源码安装包。 在gcc-7.3.0目录下,确认已下载和安装了所有依赖包。 利用多核CPU的优势,通过“-j”参数加速编译过程。原先是按照官方文档使用make -j,但速度缓慢,后来调整为make -j以提升效率。 依次执行编译目录创建、gcc编译、newtab 源码安装以及确认“libstdc++.so”软连接在正确的目录(/usr/lib)。 编译完成后,通过查看gcc版本来确认安装是否成功。 以上就是完整的gcc编译安装流程。如果您觉得这些信息对您有所帮助,欢迎分享和关注我们的更新。更多技术内容敬请期待,感谢您的支持!OpenFAST | 搭建编译环境(RedHat/CentOS 7)
在服务器上使用OpenFAST时,若遇到使用RedHat/CentOS 7系统时默认GCC套件版本过旧,无法顺利编译OpenFAST源码的情况,此时需将GCC套件升级至较高版本以解决此问题。本文将详细说明如何在CentOS 7系统上离线编译GCC7.5。 GCC(GNU编译器集合)是跨平台编译器的事实标准,支持多种编程语言。在CentOS 7系统中,自带的GCC套件版本为4.8,不支持C++。而GCC7.5支持C++,是理想的选择。编译OpenFAST需要依赖GCC中的g++和gfortran两个编译器。 以下是编译GCC7.5的具体步骤: 下载GCC7.5源代码并上传至服务器。 下载GCC的ntpclient 源码依赖包:gmp-6.1.0.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2、isl-0..1.tar.bz2,并上传至服务器的GCC源码根目录。 生成Makefile,确保配置项包含c、c++、fortran语言支持。 编译GCC7.5,使用多线程加速编译过程。 使用root权限安装GCC7.5。 检查GCC7.5版本。 更新动态库libstdc++.so.6。 更新普通用户环境变量。 测试编译器,确保安装成功。CentOS 6.2编译安装Nginx1.0.+MySQL5.5.+PHP5.3.步骤分享
说明:操作系统:CentOS 6.2 位
准备篇:
一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器
二、配置防火墙,开启端口、大成源码端口
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的端口这条规则的下面
添加好之后防火墙规则如下所示:
#########################################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
/etc/init.d/iptables restart #最后重启防火墙使配置生效
三、关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,关闭
shutdown -r now #重启系统
四 、系统约定
软件源代码包存放位置:/usr/local/src
源码包编译安装位置:/usr/local/软件名字
五、下载软件包
1、下载nginx(目前稳定版)
.php.net/distributions/php-5.3..tar.gz
5、下载cmake(MySQL编译工具)
f /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加
datadir = /data/mysql #添加MySQL数据库路径
./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir = /usr/local/mysql #MySQL程序安装路径
datadir = /data/mysql #MySQl数据库存放目录
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/mysql/bin
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
shutdown -r now #需要重启系统,等待系统重新启动之后继续在终端命令行下面操作
mysql_secure_installation #设置Mysql密码
根据提示按Y 回车输入2次密码
或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "" #修改密码
service mysqld restart #重启
到此,mysql安装完成!
五、安装 nginx
groupadd www #添加www组
useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统cd /usr/local/src
tar zxvf nginx-1.0..tar.gz
cd nginx-1.0.
./configure --prefix=/usr/local/nginx --user=www --group=www --with-tl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl #配置
make #编译
make install #安装
cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
vi /usr/local/php5/etc/php-fpm.conf #编辑
user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
设置 php-fpm开机启动
cp /usr/local/src/php-5.3./sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
chkconfig php-fpm on #设置开机启动
vi /usr/local/php5/etc/php.ini #编辑配置文件
找到:;open_basedir =
修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。fxlive源码
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:display_errors = On
修改为:display_errors = OFF #关闭错误提示
七、配置nginx支持php
vi /usr/local/nginx/conf/nginx.conf
修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改
user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.php index.html index.htm; #添加index.php
# pass the PHP scripts to FastCGI server listening on .0.0.1:
#
location ~ /.php$ {
root html;
fastcgi_pass .0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
/etc/init.d/nginx restart #重启nginx
八、配置php支持Zend Guard
安装Zend Guard
cd /usr/local/src
mkdir /usr/local/zend #建立Zend安装目录
tar xvfz ZendGuardLoader-php-5.3-linux-glibc-i.tar.gz #解压安装文件
cp ZendGuardLoader-php-5.3-linux-glibc-i/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ #拷贝文件到安装目录
vi /usr/local/php5/etc/php.ini #编辑文件
在最后位置添加以下内容
[Zend Guard]
zend_extension=/usr/local/zend/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=
测试篇
cd /usr/local/nginx/html/ #进入nginx默认网站根目录
rm -rf /usr/local/nginx/html/* #删除默认测试页
vi index.php #新建index.php文件
?php
phpinfo();
?
:wq! #保存
chown www.www /usr/local/nginx/html/ -R #设置目录所有者
chmod /usr/local/nginx/html/ -R #设置目录权限
shutdown -r now #重启
在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!
service nginx restart #重启nginx
service mysqld restart #重启mysql
/usr/local/php5/sbin/php-fpm #启动php-fpm
/etc/rc.d/init.d/php-fpm restart #重启php-fpm
/etc/rc.d/init.d/php-fpm stop #停止php-fpm
/etc/rc.d/init.d/php-fpm start #启动php-fpm
#############################################################################
备注:
nginx默认站点目录是:/usr/local/nginx/html/
权限设置:chown www.www /usr/local/nginx/html/ -R
MySQL数据库目录是:/data/mysql
权限设置:chown mysql.mysql -R /data/mysql
到此,CentOS 6.2下 Nginx1.0.+MySQL5.5.+PHP5.3.+Zend Guard Loader基本运行环境搭建完成!
升级GCC版本到.1
随着GCC .1的正式发布,对于那些已在项目中广泛使用基于C++协程的团队,尤其是依赖stackless库但受制于旧版本GCC的开发者,升级到新版本无疑提供了更佳的便利性和效率提升。考虑到旧版本GCC 8.3仍在稳定运行,且升级过程的成本相对较低,新版GCC能解决现有痛点,升级动力增强。
升级步骤大致分为:1. 从GCC官方仓库下载.1源码,推荐使用git clone或下载zip包解压;2. 利用新版本源码中的内置脚本安装依赖库,如mpfr, gmp, mpc和isl;3. 配置安装,指定安装目录,选择C和C++编译支持;4. 并行编译并安装,确保无误后以root权限运行;5. 验证安装成功;6. 考虑CMake使用和ABI兼容问题,以及LD_LIBRARY_PATH设置;7. 针对GDB版本的升级,以适应新版本GCC的要求。
通过这些步骤,项目可以顺利过渡到GCC .1,享受新版本带来的性能优化和功能增强。具体应用中,关注的特性包括但不限于协程的改进和GDB的兼容性提升。
Ubuntu. 下手动编译安装gcc-6.3.0安装,多版本GCC 共存和切换
在Ubuntu .环境下,为编译Matlab的mex函数,需要特定版本的gcc-6.3.0。尽管sudo apt-get默认安装的是6.5.0,而较新版本的如gcc-8, gcc-9, gcc-可以通过apt-get安装。以下是手动编译和安装gcc-6.3.0,以及处理多版本GCC共存和切换的步骤:
1. 首先,你需要从ftp.gnu.org/gnu/gcc/下载gcc-6.3.0的源代码。
2. 安装时,确保使用自定义路径,如--with-gmp=$HOME/local/ --with-mpfr=$HOME/local/ --with-cgal=$HOME/local/,这与你的安装目录相关。
3. 配置和编译过程可能耗时且可能出现错误,例如configure期间可能遇到`CC' has changed since the previous run`的错误,解决方法是运行`make distclean`或`rm ./config.cache`重置。
4. 在遇到`error: dereferencing pointer to incomplete type 'struct ucontext'`错误时,这是由于struct定义不完整引起的。需要修正相关变量uc_的代码。
5. 另一个问题是关于`sanitizer_platform_limits_posix.cc`中的sys/ustat.h文件问题,需要在适当位置插入预计算的Linux结构ustat大小。
6. 在sanitizer_common/sanitizer_internal_defs.h文件中,可能会遇到数组大小负数的错误。在configure时,可以考虑注释掉--disable-libsanitizer以解决这个问题,特别是如果你不使用golang。
总之,手动编译gcc-6.3.0在Ubuntu .上需要细心处理各种编译时的问题,并且需要根据错误信息进行相应的调整,同时要处理不同GCC版本的共存和切换。
centos6.5怎么从压缩文件进入安装
不管你怎么把你的目录解包解压得到你输入的目录命名的文件一个gcc-4.8.2目录后“INSTALL”双击一个名为“index.html的”子目录,其中有教你如何安装的说明。
简单地说,你还是要下载所谓的GMP,MPFR,MPC三个包解压后删除版本号为GCC-4.8.2源码包目录中去,然后才能开始安装。要创建安装前一个工作目录,例如,并列用gcc-4.8.2称为GCC-build目录,然后在与“../gcc-4.8.2/configure”配置的目录进入目录;配置发布后的“make”命令来编译,用“make install”把安装编译后。老版本的忽略它就是了。
最后,添加那一个,编译时间长了,很可能会运行3-5小时。每个字(包括标点符号)以上
从我的心脏从我手中产生希望楼主明白我的苦心。
Linux驱动开发笔记(二):ubuntu系统从源码编译安装gcc7.3.0编译器
在编译Ubuntu驱动时,由于使用的gcc版本为7.3.0,通过apt管理和下载都无法直接安装,因此需要从源码编译安装gcc7.3.0编译器。
GCC,作为GNU项目的重要组成部分,是一款遵循GPL许可证的自由软件。起初,它为GNU操作系统设计,如今已广泛应用于Linux、BSD、MacOS X等系统,甚至在Windows上也有应用。GCC支持多种处理器架构,如x、ARM和MIPS,并且支持多种编程语言,如C、C++、Fortran、Pascal等。
要从源码安装gcc7.3.0,首先需要下载源码包。下载地址为:mirrors.tuna.tsinghua.edu.cn...
安装过程分为几个步骤。首先,确保网络连接,因为需要依赖库,如libgmp-dev、libmpfr-dev和libmpc-dev。安装完这些后,不要卸载已有的gcc,因为可能会遇到问题。
下载并解压gcc-7.3.0.tar.gz,然后执行./configure。注意增加c和c++的配置,避免编译结果只有g++。配置完成后,进行make -j4编译,可能会遇到错误,如"fatal error: asm/errno.h: No such file or directory",这时需要修改头文件路径。
继续编译,可能会遇到"sanitizer_syscall_generic.inc::: error: '__NR_open' was not declared in this scope",解决方法是修正头文件链接。最后,编译成功后执行sudo make install,并确认安装版本。
在安装过程中,有两点需要注意:一是本地需要g++,否则编译时会出错,解决方法是安装gcc;二是安装后可能只有g++,没有gcc,此时需在./configure阶段添加c和c++的配置。