这半个月一直在解决PHP调用so的问题。终于在ubuntu下搞得差不多哭今天开始往服务器上移植了,结果发现服务器是redhat的某个远古版本= =郁闷 公司管服务器的人也不知所踪了 只能又开始摸着更新里面的软件 先从gcc开始咯敲打好了 先说明来意 将含有目标c算法的so按照:
①sudo cp libxxx.so /usr/local/lib路径
②sudo ldconfig
写了一个test.c后按照:
gcc -o xxxtest xxx.c -lxxx (-l为不带”lib”的动态库名称) 后报错:
好吧 暂时没有搜到什么有用的信息 考虑先把gcc升级一下,开始了:
1.下载gcc安装包
gcc各版本浏览地址 gcc下载官网, 我选择的是gcc4.9.2 ,因为之前在ubuntu下也下的这个
2.将gcc-4.9.2tar.bz2解压(放~目录里面了)
[root@localhost ]# tar -xjvfgcc4.9.2.tar.bz2
3.创建安装目录
[root@localhost]# mkdir /usr/local/gcc4.9.2
4.进入安装目录
[root@localhost]# cd /usr/local/gcc-4.9.2/
5.配置安装文件
[root@localhost gcc-4.9.2]# ~/gcc-4.9.2/configure -- prefix=/usr/local/gcc-4.9.2 (设置一个路径比较方便 接下来就明白了)
(执行源目录4.9.2中的configure命令,配置将gcc安装到目标目录/usr/local/4.9.2/下,这里–prefix选项代表要将该库安装在哪里,我是装在/usr/local/4.9.2目录下,后面的安装都会用到这个选项)
如果执行这步的时候出现了如下错误:
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
their locations.
错误说明要安装gcc需要GMP、MPFR、MPC这三个库,可从ftp://gcc.gnu.org/pub/gcc/infrastructure/下载相应的压缩包。由于MPFR依赖GMP,而MPC依赖GMP和MPFR,所以要先安装GMP,其次MPFR,最后才是MPC。这里三个库我用的版本分别是gmp4.3.2,mpfr2.4.2和mpc0.8.1。
①.安装gmp6.0.0
[root@localhost opt]# tar jxvf gmp-6.0.0.tar.bz2
[root@localhost opt]# mkdir /usr/local/gmp-6.0.0
[root@localhost opt]# cd /usr/local/gmp-6.0.0
[root@localhost gmp-6.0.0]# /opt/gmp-6.0.0/configure --prefix=/usr/local/gmp-6.0.0
[root@localhost gmp-6.0.0# make &make install
②安装mpfr2.4.2(新版本安装方法与此相同)
[root@localhost]# tar jxvf mpfr2.4.2.tar.bz2
[root@localhost]# mkdir /usr/local/mpfr-2.4.2
[root@localhost ]# cd /usr/local/mpfr-2.4.2
[root@localhost mpfr-2.4.2]# /opt/mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2(注意配置的时候要把依赖关系选项加进去)
[root@localhost mpfr-2.4.2]# make & make install
③安装mpc0.8.1
[root@localhost]# tar jxvf gmpc0.8.1.tar.bz2
[root@localhost]# mkdir /usr/local/mpc-0.8.1
[root@localhost]# cd /usr/local/mpc-0.8.1
[root@localhost mpc-0.8.1]# /opt/mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2
[root@localhost mpc-0.8.1]# make
[root@localhost mpc-0.8.1]# make install
然后需要添加环境变量LD_LIBRARY_PATH以指出前面三个库的位置,键入以下命令(很关键,不然你make一小时候报错的心情真像草泥马):
[root@localhost gcc-4.9.2]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib
④再次安装GCC 配置安装选项
[root@localhost mpc-0.8.1]# cd /usr/local/gcc-4.9.2
[root@localhost gcc-4.9.2]# gcc-4.9.2/configure --prefix=/usr/local/gcc-4.9.2 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
大概四个多小时后···(等傻了)
7.执行安装gcc make install
8.建立软链接
[root@localhost /]# sudo ln -s /usr/local/gcc-4.9.2/bin/gcc gcc49
[root@localhost /]# sudo ln -s /usr/local/gcc-4.9.2/bin/g++ g++49
9.添加环境变量
[root@localhost linfeng]# export PATH=$PATH:/usr/local/gcc-4.9.2/bin/