ICE 迁移64位安装问题

昨天手贱,在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编译错误如下

  1. berli@server:~/Dev/Ice/ice/php$ make  
  2. making all in src  
  3. make[1]: Entering directory '/home/berli/Dev/Ice/ice/php/src'  
  4. making all in IcePHP  
  5. make[2]: Entering directory '/home/berli/Dev/Ice/ice/php/src/IcePHP'  
  6. 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  
  7. In file included from /usr/local/include/php/Zend/zend.h:39:0,  
  8.                  from /usr/local/include/php/main/php.h:35,  
  9.                  from ./Config.h:53,  
  10.                  from ./Communicator.h:13,  
  11.                  from Communicator.cpp:10:  
  12. ./Util.h: In destructor ‘IcePHP::AutoDestroy::~AutoDestroy()’:  
  13. /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*)’  
  14.  #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)  
  15.                                                                             ^  
  16. ./Util.h:157:30: note: in expansion of macro ‘zval_ptr_dtor’  
  17.      ~AutoDestroy() { if(_zv) zval_ptr_dtor(&_zv); }  
  18.                               ^  
  19. Communicator.cpp: At global scope:  
  20. Communicator.cpp:181:8: error: ‘zend_object_value’ does not name a type  
  21.  static zend_object_value handleAlloc(zend_class_entry* TSRMLS_DC);  
  22.         ^  
  23. Communicator.cpp:183:8: error: ‘zend_object_value’ does not name a type  
  24.  static zend_object_value handleClone(zval* TSRMLS_DC);  
  25.         ^  
  26. Communicator.cpp: In function ‘void zim_Ice_Communicator_proxyToString(zend_execute_data*, zval*)’:  
  27. Communicator.cpp:285:10: error: ‘RETURN_STRINGL’ was not declared in this scope  
  28.          (RETURN_STRINGL)(STRCAST(str.c_str()), static_cast<int>(str.length()), 1);  
  29.           ^  
  30. Communicator.cpp: In function ‘void zim_Ice_Communicator_identityToString(zend_execute_data*, zval*)’:  
  31. Communicator.cpp:418:10: error: ‘RETURN_STRINGL’ was not declared in this scope  
  32.          (RETURN_STRINGL)(STRCAST(str.c_str()), static_cast<int>(str.length()), 1);  
  33.           ^  
  34. Communicator.cpp: At global scope:  
  35. Communicator.cpp:768:8: error: ‘zend_object_value’ does not name a type  
  36.  static zend_object_value  
  37.         ^  
  38. Communicator.cpp:797:8: error: ‘zend_object_value’ does not name a type  
  39.  static zend_object_value  
  40.         ^  
  41. In file included from /usr/local/include/php/main/php.h:39:0,  
  42.                  from ./Config.h:53,  
  43.                  from ./Communicator.h:13,  
  44.                  from Communicator.cpp:10:  
  45. Communicator.cpp: In function ‘void zif_Ice_initialize(zend_execute_data*, zval*)’:  
  46. /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*)’  
  47.   _zend_get_parameters_array_ex(param_count, argument_array)  
  48.                                                            ^  
  49. Communicator.cpp:901:8: note: in expansion of macro ‘zend_get_parameters_array_ex’  
  50.      if(zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE)  
  51.         ^  
  52. Communicator.cpp:923:29: error: ‘Z_TYPE_PP’ was not declared in this scope  
  53.          if(Z_TYPE_PP(args[0]) == IS_ARRAY)  
  54.                              ^  
  55. Communicator.cpp:933:73: error: ‘Z_OBJCE_PP’ was not declared in this scope  
  56.                  if(Z_TYPE_PP(args[1]) != IS_OBJECT || Z_OBJCE_PP(args[1]) != initClass)  
  57.                                                                          ^  
  58. Communicator.cpp:942:70: error: ‘Z_OBJCE_PP’ was not declared in this scope  
  59.          else if(Z_TYPE_PP(args[0]) == IS_OBJECT && Z_OBJCE_PP(args[0]) == initClass)  
  60.                                                                       ^  
  61. 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*)’  
  62.          if(zend_hash_find(Z_OBJPROP_P(zvinit), STRCAST(member.c_str()), static_cast<uint>(member.size() + 1), &data) == SUCCESS)  
  63.                                                                                                                     ^  
  64. 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*)’  
  65.          if(zend_hash_find(Z_OBJPROP_P(zvinit), STRCAST(member.c_str()), static_cast<uint>(member.size() + 1), &data) == SUCCESS)  
  66.                                                                                                                     ^  
  67. Communicator.cpp:993:37: error: ‘PZVAL_IS_REF’ was not declared in this scope  
  68.      if(zvargs && PZVAL_IS_REF(zvargs))  
  69.                                      ^  
  70. Communicator.cpp: In function ‘bool IcePHP::communicatorInit()’:  
  71. Communicator.cpp:1421:24: error: ‘handleAlloc’ was not declared in this scope  
  72.      ce.create_object = handleAlloc;  
  73.                         ^  
  74. Communicator.cpp:1424:27: error: ‘handleClone’ was not declared in this scope  
  75.      _handlers.clone_obj = handleClone;  
  76.                            ^  
  77. Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::getZval(zval*)’:  
  78. Communicator.cpp:1564:17: error: lvalue required as left operand of assignment  
  79.      Z_TYPE_P(z) = IS_OBJECT;  
  80.                  ^  
  81. Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::addRef()’:  
  82. Communicator.cpp:1573:20: error: ‘const zend_object_handlers’ has no member named ‘add_ref’  
  83.      Z_OBJ_HT_P(p)->add_ref(p TSRMLS_CC);  
  84.                     ^  
  85. Communicator.cpp: In member function ‘virtual void IcePHP::CommunicatorInfoI::decRef()’:  
  86. Communicator.cpp:1580:19: error: ‘const zend_object_handlers’ has no member named ‘del_ref’  
  87.      Z_OBJ_HT(zv)->del_ref(p TSRMLS_CC);  
  88.                    ^  
  89. Communicator.cpp: In member function ‘bool IcePHP::CommunicatorInfoI::findObjectFactory(const string&, zval*)’:  
  90. Communicator.cpp:1636:22: error: ‘INIT_PZVAL’ was not declared in this scope  
  91.          INIT_PZVAL(zv);  
  92.                       ^  
  93. Communicator.cpp: In member function ‘bool IcePHP::CommunicatorInfoI::findValueFactory(const string&, zval*)’:  
  94. Communicator.cpp:1651:22: error: ‘INIT_PZVAL’ was not declared in this scope  
  95.          INIT_PZVAL(zv);  
  96.                       ^  
  97. In file included from /usr/local/include/php/Zend/zend.h:39:0,  
  98.                  from /usr/local/include/php/main/php.h:35,  
  99.                  from ./Config.h:53,  
  100.                  from ./Communicator.h:13,  
  101.                  from Communicator.cpp:10:  
  102. Communicator.cpp: In member function ‘void IcePHP::CommunicatorInfoI::destroyObjectFactories()’:  
  103. /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*)’  
  104.  #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)  
  105.                                                                             ^  
  106. Communicator.cpp:1669:9: note: in expansion of macro ‘zval_ptr_dtor’  
  107.          zval_ptr_dtor(&p->second);  
  108.          ^  
  109. Communicator.cpp: In member function ‘void IcePHP::CommunicatorInfoI::destroyValueFactories()’:  
  110. /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*)’  
  111.  #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)  
  112.                                                                             ^  
  113. Communicator.cpp:1679:9: note: in expansion of macro ‘zval_ptr_dtor’  
  114.          zval_ptr_dtor(&p->second);  
  115.          ^  
  116. Communicator.cpp: In member function ‘virtual Ice::ObjectPtr IcePHP::ObjectFactoryI::create(const string&)’:  
  117. Communicator.cpp:1744:26: error: ‘MAKE_STD_ZVAL’ was not declared in this scope  
  118.          MAKE_STD_ZVAL(arg);  
  119.                           ^  
  120. Communicator.cpp:1745:10: error: ‘ZVAL_STRINGL’ was not declared in this scope  
  121.          (ZVAL_STRINGL)(arg, STRCAST(id.c_str()), static_cast<int>(id.length()), 1);  
  122.           ^  
  123. 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*)’  
  124.              zend_call_method(&factory, 0, 0, const_cast<char*>(func), static_cast<int>(strlen(func)), &obj, 1, arg, 0 TSRMLS_CC);  
  125.                                                                                                                                 ^  
  126. In file included from /usr/local/include/php/Zend/zend.h:39:0,  
  127.                  from /usr/local/include/php/main/php.h:35,  
  128.                  from ./Config.h:53,  
  129.                  from ./Communicator.h:13,  
  130.                  from Communicator.cpp:10:  
  131. /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*)’  
  132.  #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC)  
  133.                                                                             ^  
  134. Communicator.cpp:1760:9: note: in expansion of macro ‘zval_ptr_dtor’  
  135.          zval_ptr_dtor(&arg);  
  136.          ^  
  137. Communicator.cpp:1792:22: error: ‘MAKE_STD_ZVAL’ was not declared in this scope  
  138.      MAKE_STD_ZVAL(obj);  
  139.                       ^  
  140. Communicator.cpp: At global scope:  
  141. Communicator.cpp:786:1: error: ‘void handleFreeStorage(void*)’ defined but not used [-Werror=unused-function]  
  142.  handleFreeStorage(void* p TSRMLS_DC)  
  143.  ^  
  144. cc1plus: all warnings being treated as errors  
  145. ../../config/Make.rules.php:161: recipe for target 'Communicator.o' failed  
  146. make[2]: *** [Communicator.o] Error 1  
  147. make[2]: Leaving directory '/home/berli/Dev/Ice/ice/php/src/IcePHP'  
  148. Makefile:17: recipe for target 'all' failed  
  149. make[1]: *** [all] Error 1  
  150. make[1]: Leaving directory '/home/berli/Dev/Ice/ice/php/src'  
  151. Makefile:34: recipe for target 'all' failed  
  152. 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 微服务 讨论群【469331966】 ; 本文为博主原创文章,未经博主允许不得转载。

来源:http://blog.csdn.net/chary8088/article/details/50414577

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值