昨天手贱,在apt-get install 后有一大堆,上百个安装包not upgrade, 发现有提示apt-get autoremove,犹豫了很久后还是忍不住执行了autoremove;这个命令是带着auto的,想着应该没事。到网上搜罗下autoremove,吓我一跳。。。

然后这个debian,坚如磐石,从没出过任何问题的OS,突然没网络了,ifconfig下;eth0的网卡没了,折腾了一两个小时也没恢复,想想应该与我autoremove相关;

哎,手贱。。。

然后,幸运的发现我所有的与编程相关的都是独立放在一块虚拟硬盘上的,谢天谢地,还好还好。

正好也是我把开发环境转到64位的机会吧,然后把这个挂到debian64的机器下;重新部署安装ice环境;

1 openssl的安装

sudo apt-get install libssl-dev

这个命令后,头文件部署最新的,会报BN_开头的函数未定义;

如果使用openssl源码编译安装,但是默认编译生成的是静态库.a的(libcrypto.a, libssl.a),ice需要.so动态库;

修改了几次config文件没生效,就用上面的apt-get命令得到了动态库

git clone --recursive https://github.com/openssl/openssl.git

cd ./openssl

make

sudo make install

#opensssl 

sudo apt-get install libssl-dev

sudo cp /usr/local/ssl/include/openssl/ /usr/local/include/ -r

#bzip2 安装

sudo apt-get install  libbz2-dev

sudo apt-get install libexpat1-dev

sudo apt-get install liblmdb-dev

#for php, 

sudo apt-get install python-dev
ICE 3.7现在只支持php5.6, 对php7.0有几个函数参数不一致,还不能编译

php7.0与ICE3.7编译错误如下

berli@server:~/Dev/Ice/ice/php$ make
making all in src
make[1]: Entering directory '/home/berli/Dev/Ice/ice/php/src'
making all in IcePHP
make[2]: Entering directory '/home/berli/Dev/Ice/ice/php/src/IcePHP'
g++ -c -I. -I../../../cpp/include -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -m64 -fvisibility=hidden -Wall -Werror -pthread -fPIC -g Communicator.cpp
In file included from /usr/local/include/php/Zend/zend.h:39:0,
from /usr/local/include/php/main/php.h:35,
from ./Config.h:53,
from ./Communicator.h:13,
from Communicator.cpp:10:
./Util.h: In destructor ‘IcePHP::AutoDestroy::~AutoDestroy()’:
/usr/local/include/php/Zend/zend_variables.h:122:76: error: cannot convert ‘zval** {aka _zval_struct**}’ to ‘zval* {aka _zval_struct*}’ for argument ‘1’ to ‘void _zval_ptr_dtor(zval*)’
#define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)
^
./Util.h:157:30: note: in expansion of macro ‘zval_ptr_dtor’
~AutoDestroy() { if(_zv) zval_ptr_dtor(&_zv); }
^
Communicator.cpp: At global scope:
Communicator.cpp:181:8: error: ‘zend_object_value’ does not name a type
static zend_object_value handleAlloc(zend_class_entry* TSRMLS_DC);
^
Communicator.cpp:183:8: error: ‘zend_object_value’ does not name a type
static zend_object_value handleClone(zval* TSRMLS_DC);
^
Communicator.cpp: In function ‘void zim_Ice_Communicator_proxyToString(zend_execute_data*, zval*)’:
Communicator.cpp:285:10: error: ‘RETURN_STRINGL’ was not declared in this scope
(RETURN_STRINGL)(STRCAST(str.c_str()), static_cast<int>(str.length()), 1);
^
Communicator.cpp: In function ‘void zim_Ice_Communicator_identityToString(zend_execute_data*, zval*)’:
Communicator.cpp:418:10: error: ‘RETURN_STRINGL’ was not declared in this scope
(RETURN_STRINGL)(STRCAST(str.c_str()), static_cast<int>(str.length()), 1);
^
Communicator.cpp: At global scope:
Communicator.cpp:768:8: error: ‘zend_object_value’ does not name a type
static zend_object_value
^
Communicator.cpp:797:8: error: ‘zend_object_value’ does not name a type
static zend_object_value
^
In file included from /usr/local/include/php/main/php.h:39:0,
from ./Config.h:53,
from ./Communicator.h:13,
from Communicator.cpp:10:
Communicator.cpp: In function ‘void zif_Ice_initialize(zend_execute_data*, zval*)’:
/usr/local/include/php/Zend/zend_API.h:258:59: error: cannot convert ‘zval*** {aka _zval_struct***}’ to ‘zval* {aka _zval_struct*}’ for argument ‘2’ to ‘int _zend_get_parameters_array_ex(int, zval*)’
_zend_get_parameters_array_ex(param_count, argument_array)
^
Communicator.cpp:901:8: note: in expansion of macro ‘zend_get_parameters_array_ex’
if(zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE)
^
Communicator.cpp:923:29: error: ‘Z_TYPE_PP’ was not declared in this scope
if(Z_TYPE_PP(args[0]) == IS_ARRAY)
^
Communicator.cpp:933:73: error: ‘Z_OBJCE_PP’ was not declared in this scope
if(Z_TYPE_PP(args[1]) != IS_OBJECT || Z_OBJCE_PP(args[1]) != initClass)
^
Communicator.cpp:942:70: error: ‘Z_OBJCE_PP’ was not declared in this scope
else if(Z_TYPE_PP(args[0]) == IS_OBJECT && Z_OBJCE_PP(args[0]) == initClass)
^
Communicator.cpp:965:116: error: cannot convert ‘char*’ to ‘zend_string* {aka _zend_string*}’ for argument ‘2’ to ‘zval* zend_hash_find(const HashTable*, zend_string*)’
if(zend_hash_find(Z_OBJPROP_P(zvinit), STRCAST(member.c_str()), static_cast<uint>(member.size() + 1), &data) == SUCCESS)
^
Communicator.cpp:975:116: error: cannot convert ‘char*’ to ‘zend_string* {aka _zend_string*}’ for argument ‘2’ to ‘zval* zend_hash_find(const HashTable*, zend_string*)’
if(zend_hash_find(Z_OBJPROP_P(zvinit), STRCAST(member.c_str()), static_cast<uint>(member.size() + 1), &data) == SUCCESS)
^
Communicator.cpp:993:37: error: ‘PZVAL_IS_REF’ was not declared in this scope
if(zvargs && PZVAL_IS_REF(zvargs))
^
Communicator.cpp: In function ‘bool IcePHP::communicatorInit()’:
Communicator.cpp:1421:24: error: ‘handleAlloc’ was not declared in this scope
ce.create_object = handleAlloc;
^
Communicator.cpp:1424:27: error: ‘handleClone’ was not declared in this scope
_handlers.clone_obj = handleClone;
^
Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::getZval(zval*)’:
Communicator.cpp:1564:17: error: lvalue required as left operand of assignment
Z_TYPE_P(z) = IS_OBJECT;
^
Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::addRef()’:
Communicator.cpp:1573:20: error: ‘const zend_object_handlers’ has no member named ‘add_ref’
Z_OBJ_HT_P(p)->add_ref(p TSRMLS_CC);
^
Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::decRef()’:
Communicator.cpp:1580:19: error: ‘const zend_object_handlers’ has no member named ‘del_ref’
Z_OBJ_HT(zv)->del_ref(p TSRMLS_CC);
^
Communicator.cpp: In member function ‘bool IcePHP::CommunicatorInfoI::findObjectFactory(const string&, zval*)’:
Communicator.cpp:1636:22: error: ‘INIT_PZVAL’ was not declared in this scope
INIT_PZVAL(zv);
^
Communicator.cpp: In member function ‘bool IcePHP::CommunicatorInfoI::findValueFactory(const string&, zval*)’:
Communicator.cpp:1651:22: error: ‘INIT_PZVAL’ was not declared in this scope
INIT_PZVAL(zv);
^
In file included from /usr/local/include/php/Zend/zend.h:39:0,
from /usr/local/include/php/main/php.h:35,
from ./Config.h:53,
from ./Communicator.h:13,
from Communicator.cpp:10:
Communicator.cpp: In member function ‘void IcePHP::CommunicatorInfoI::destroyObjectFactories()’:
/usr/local/include/php/Zend/zend_variables.h:122:76: error: cannot convert ‘_zval_struct**’ to ‘zval* {aka _zval_struct*}’ for argument ‘1’ to ‘void _zval_ptr_dtor(zval*)’
#define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)
^
Communicator.cpp:1669:9: note: in expansion of macro ‘zval_ptr_dtor’
zval_ptr_dtor(&p->second);
^
Communicator.cpp: In member function ‘void IcePHP::CommunicatorInfoI::destroyValueFactories()’:
/usr/local/include/php/Zend/zend_variables.h:122:76: error: cannot convert ‘_zval_struct**’ to ‘zval* {aka _zval_struct*}’ for argument ‘1’ to ‘void _zval_ptr_dtor(zval*)’
#define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)
^
Communicator.cpp:1679:9: note: in expansion of macro ‘zval_ptr_dtor’
zval_ptr_dtor(&p->second);
^
Communicator.cpp: In member function ‘virtual Ice::ObjectPtr IcePHP::ObjectFactoryI::create(const string&)’:
Communicator.cpp:1744:26: error: ‘MAKE_STD_ZVAL’ was not declared in this scope
MAKE_STD_ZVAL(arg);
^
Communicator.cpp:1745:10: error: ‘ZVAL_STRINGL’ was not declared in this scope
(ZVAL_STRINGL)(arg, STRCAST(id.c_str()), static_cast<int>(id.length()), 1);
^
Communicator.cpp:1752:128: error: cannot convert ‘zval** {aka _zval_struct**}’ to ‘zval* {aka _zval_struct*}’ for argument ‘1’ to ‘zval* zend_call_method(zval*, zend_class_entry*, zend_function**, const char*, size_t, zval*, int, zval*, zval*)’
zend_call_method(&factory, 0, 0, const_cast<char*>(func), static_cast<int>(strlen(func)), &obj, 1, arg, 0 TSRMLS_CC);
^
In file included from /usr/local/include/php/Zend/zend.h:39:0,
from /usr/local/include/php/main/php.h:35,
from ./Config.h:53,
from ./Communicator.h:13,
from Communicator.cpp:10:
/usr/local/include/php/Zend/zend_variables.h:122:76: error: cannot convert ‘zval** {aka _zval_struct**}’ to ‘zval* {aka _zval_struct*}’ for argument ‘1’ to ‘void _zval_ptr_dtor(zval*)’
#define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)
^
Communicator.cpp:1760:9: note: in expansion of macro ‘zval_ptr_dtor’
zval_ptr_dtor(&arg);
^
Communicator.cpp:1792:22: error: ‘MAKE_STD_ZVAL’ was not declared in this scope
MAKE_STD_ZVAL(obj);
^
Communicator.cpp: At global scope:
Communicator.cpp:786:1: error: ‘void handleFreeStorage(void*)’ defined but not used [-Werror=unused-function]
handleFreeStorage(void* p TSRMLS_DC)
^
cc1plus: all warnings being treated as errors
../../config/Make.rules.php:161: recipe for target 'Communicator.o' failed
make[2]: *** [Communicator.o] Error 1
make[2]: Leaving directory '/home/berli/Dev/Ice/ice/php/src/IcePHP'
Makefile:17: recipe for target 'all' failed
make[1]: *** [all] Error 1
make[1]: Leaving directory '/home/berli/Dev/Ice/ice/php/src'
Makefile:34: recipe for target 'all' failed
make: *** [all] Error 1

http://prdownloads.sourceforge.net/mcpp/mcpp-2.7.2.tar.gz?download

tar xvf mcpp-2.7.2.tar.gz  

  cd mcpp-2.7.2  

  patch -p0 < ../mcpp/patch.mcpp.2.7.2  

  ./configure CFLAGS=-fPIC --enable-mcpplib --disable-shared  

  make && make install  

#2)  安装BerkeleyDB  

  tar db-5.3.21.NC.tar.gz  

  cd db-5.3.21.NC  

  patch -p0 < ../db/patch.db.5.3.21  

  cd build_unix  

  ../dist/configure --enable-cxx  

  make && make install

ICE 迁移64位安装问题的更多相关文章

  1. ubuntu 14.04 64位安装iNodeClient

    ubuntu 14.04 64位安装iNodeClieng(华三校园客服端) http://pan.baidu.com/s/12dpxk ubuntu 14.04 64bit Install H3C ...

  2. CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程

    CentOS6.0(64位)安装Apache+PHP+Mysql教程,安装Magento(解决DOM,Mcrypt,GD问题)完整教程 0   Posted by :小黑 On : 2012 年 9 ...

  3. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  4. hadoop2.5发布:最新编译 32位、64位安装、源码包、API以及新特性

    hadoop2.5发布:最新编译 32位.64位安装.源码包.API以及新特性 http://www.aboutyun.com/thread-8751-1-1.html (出处: about云开发) ...

  5. oracle 11g 64位安装sqldeveloper打开不了

    oracle 11g 64位安装sqldeveloper打开不了解决方法: 1.到官网下载对应版本的sqldeveloper. 2.找对应安装路径下的F:\app\Administrator\prod ...

  6. Win7 64位安装MySQL

    1.Win7 64位 安装MySQL5.5版本 安装文件的执行:会提示“已经停止工作”: 2.我下载了mysql-installer-community-5.7.11.0.msi,可以安装成功,中途需 ...

  7. hadoop2.2.0伪分布模式64位安装

    hadoop2.2.0伪分布模式64位安装用到的软件:jdk-6u45-linux-x64.bin,hadoop-2.2.0.x86_64.tar.gz 修改主机名vim /etc/sysconfig ...

  8. win7系统64位安装oracle10g

    win7系统64位安装oracle10g 下载地址: http://download.oracle.com/otn/nt/oracle10g/10204/10204_vista_w2k8_x64_pr ...

  9. Ubuntu14.04(64位)安装ATI_Radeon_R7_M265显卡驱动

    电脑型号:Dell inspiron 14-5447 笔记本 显卡配置:集成显卡Intel核心显卡,Cpu是i5-4210U;独立显卡ATI_Radeon_R7_M265 网上关于ATI/Intel双 ...

随机推荐

  1. C语言 包含结构的结构

    一个结构体的成员是另一个结构体 代码: # include <stdio.h> # include <stdlib.h> struct data { int year; int ...

  2. Linux - 配置SSH免密通信 - “ssh-keygen”的基本用法

    目录 1 什么是SSH 2 配置SSH免密登录 2.1 安装必需的软件 2.2 ssh-keygen创建公钥-私钥对 2.3 ssh-copy-id把A的公钥发送给B 2.4 在A服务器上免密登录B服 ...

  3. 巧用Excel提高工作效率

    程序员如何巧用Excel提高工作效率 主要讲解下Excel中VLOOKUP函数的使用,相比于上一篇中的内容,个人觉得这个相对高级一些. 1.使用背景 为什么会使用到这个函数呢,背景是这样的,有两个系统 ...

  4. 为CentOS配置网易163的yum源

    Yum (Yellow dog Updater, Modified)是一个基于 RPM 包管理的字符前端软件包管理器.能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所 ...

  5. 用canvas合成图片

    朋友圈有些分享功能是通过长按图片另存来实现的,就像淘宝内部要分享朋友圈的时候一样,这些图片可以用canvas来合成. 获取了img的dom对象以后,进行base64的转. //加载对象$page.ge ...

  6. Option可选值可选值(二)

    //: Playground - noun: a place where people can play import Cocoa var str1 = "供选链接和强制拆包的不同. &qu ...

  7. 【Scala】Scala的Predef对象

    隐式引用(Implicit Import) Scala会自己主动为每一个程序加上几个隐式引用,就像Java程序会自己主动加上java.lang包一样. Scala中.下面三个包的内容会隐式引用到每一个 ...

  8. EasyPlayerPro Windows播放器本地快照抓拍截图功能实现方法

    背景描述 作为一个播放器,截图功能必不可少; 下面主要记录一下截图功能的实现: 实现流程 将解码后的帧进行格式转换(目标格式为RGB24); 采用独立的线程进行截图处理; 截图可保存为BMP或JPG两 ...

  9. iOS 转场动画核心内容

    CATransition——转场动画 CATransition是CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果.iOS比Mac OS X的转场动画效果少一点. ...

  10. 20179209课后作业之od命令重写

    一.问题描述: 1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3. main与其他分开,制作静态库和动态库 4. 编写Makefi ...