Thrift 官网
http://thrift.apache.org/
版本下载
http://archive.apache.org/dist/thrift/
在Ubuntu12.04下编译失败,automake、boots等需要版本较高,apt-get install命令不能安装,自己编译太麻烦,放弃。
以下在Ubuntu16下测试。Thrift0.11.0,通过thrift命令生产代码编译链接有问题,改为thrift0.10.0.
1)sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
Ubuntu16下自带的GCC、G++版本为5.4.0
检查thrift是否安装成功
运行thrift –version提示Thrift version 0.10.0,则安装成功。
错误处理:提示thrift: error while loading shared libraries: libthriftc.so.0: cannot open shared object file: No such file or directory。
处理方法:http://www.linuxdiyf.com/linux/27018.html
https://blog.csdn.net/feng973/article/details/80434855
随笔 - 160 文章 - 0 评论 - 10
sudo apt-get install git
E:无法获得锁
/var/lib
/dpkg/lock - open (
11: 资源暂时不可用)
E:无法锁定管理目录(
/var/lib
/dpkg/),是否有其他进程正占用它?
当执行sudo apt-get
相关的命令,会显示上面类似的错误
参考别人的解决方法是
sudo rm
/var/cache
/apt/archives/lock
sudo rm
/var/lib
/dpkg/lock
E: Could not get
lock/
var/lib/apt/lists/
lock-
open(
11:
Resourcetemporarily unavailable)
E: Unable
tolock
directory
/
var/lib/apt/lists/
E: Could
notget
lock
/
var/lib/dpkg/
lock-
open(
11:
Resourcetemporarily unavailable)
E: Unable
tolock
the administration
directory(/
var/lib/dpkg/),
isanother process
usingit?
可以运行
sudo rm
/var/lib
/apt/lists/lock
sudo rm
/var/lib
/dpkg/lock
参考链接:
在VS2010下编译测试Thrift-0.10.0(32位)
方法一:
1)下载boost 1.55
http://sourceforge.net/projects/boost/files/boost/1.55.0/,
解压到X:\windows\boost_1_55_0
2)编译boost_1_55_0
启动Visual Studio 命令提示(2010),切换到目录X:\windows\boost_1_55_0,运行
bootstrap,生成bjam.exe
编译
一般不需要全部编译,部分编译就够用了
全部编译的命令行:bjam --toolset=msvc-12.0 --build-type=complete stage
部分编译的命令行:bjam --toolset=msvc-12.0 --with-date_time --with-thread
编译成64位的命令:bjam --toolset=msvc-12.0 address-model=64 --build-type=complete stage
查看需要编译库的命令行:bjam --show-libraries
3)使用编译的静态库
配置属性-》链接器-》常规-》附加库依赖项-》boost\stage\lib
配置属性-》链接器-》输入-》附加依赖项-》libboost_timer-vc120-1_55
可参考http://blog.csdn.net/misskissc/article/details/9793645
方法二(推荐):
https://excellmedia.dl.sourceforge.net/project/boost/boost-binaries/1.55.0-build2/boost_1_55_0-msvc-10.0-32.exe
测试代码
建立Visula C++控制台项目bootstest,设置项目属性,增加头文件和库文件路径。
项目的解决方案那里找到属性页,打开并选择配置属性,选择VC++目录,设置包含目录和库目录,
增加环境变量BOOST_ROOT : X:\windows\boost_1_55_0
包含目录$(BOOST_ROOT);
库目录 $(BOOST_ROOT)\lib32-msvc-10.0;
转存失败重新上传取消
编译CTRL+F5,出现如下界面则安装配置成功。
转存失败重新上传取消
方法一:现成版本(Win32OpenSSL-1_1_0i.exe) Openssl.rar
https://slproweb.com/products/Win32OpenSSL.html
增加环境变量:OPENSSL_ROOT_DIR:X:\windows\OpenSSL-Win32
下载编译好的版本直接使用,设置编译选项即可。
鼠标右击工程名---属性
1. 配置属性---VC++目录---在include目录中新增“$(OPENSSL_ROOT_DIR) \include”。
2. VC++目录---“Library files”选择中新增目录“$(OPENSSL_ROOT_DIR) \lib”。
方法二:源码编译(未验证)
安装OpenSSL (https://blog.csdn.net/iw1210/article/details/50947654)
1.下载 OpenSSL并解压,比如解压到 d:\openssl-1.0.1s 目录。(下载地址:http://www.openssl.org/)
2.下载ActivePer并安装,比如安装到d:\perl目录,并在环境变量中添加path=d:\perl\bin 。(下载地址:http://www.activestate.com/ActivePer)
3.建一个存放OpenSSL库文件的目录,比如为 d:\OpenSSLlib 。
4.运行2010控制台:开始-所有程序—Microsoft visual studio2010——Visual Studio Tools——Visual Studio 2010命令提示
5.进入OpenSSL源代码目录路径
cd d:\openssl-1.0.1s
6.按顺序执行下列命令
d:\openssl-1.0.1s>perl Configure VC-WIN64A no-asm --prefix=d:\OpenSSLlib (存放编译后的库文文件目录)
d:\openssl-1.0.1s>ms\do_win64a
d:\openssl-1.0.1s>nmake -f ms\ntdll.mak (编译动态库)
d:\openssl-1.0.1s>nmake -f ms\nt.mak (编译静态库)
装载OpenSSL库文件到前面指定的目录(d:\OpenSSLlib)中:
d:\openssl-1.0.1s>nmake -f ms\ntdll.mak install
d:\openssl-1.0.1s>nmake -f ms\nt.mak install
路径设置同方法一
测试代码
见工程OpenSslTest(),编译正常说明配置正确。X:\windows\OpenSSLTest
转存失败重新上传取消
因编码问题,汉字显示乱码与SSL无关忽略。
安装
参考:https://www.cnblogs.com/luxiaoxun/p/3603399.html
下载:
http://libevent.org/
修改:
修改下面三个文件开头的_WIN32_WINNT,为0x0500
libevent-2.0.21-stable\event_iocp.c
libevent-2.0.21-stable\evthread_win32.c
libevent-2.0.21-stable\listener.c
后来验证可以不用修改
编译:
启动Visual Studio 命令提示(2010),切换到目录X:\windows\libevent-2.0.21-stable运行nmake /f Makefile.nmake
测试
工程见:X:\windows\LibeventTest
鼠标右击工程名---属性
1. 配置属性---VC++目录---在include目录中新增“$(LIBEVENT_ROOT_DIR)/include;”。
2. VC++目录---“Library files”选择中新增目录“$(LIBEVENT_ROOT_DIR)”。
3.代码生成-->运行库:多线程调试 (/MTd)(Debug下),多线程 (/MT)(Release下)
4.连接器->输入:ws2_32.lib;wsock32.lib;libevent.lib;libevent_core.lib;libevent_extras.lib;
附录:windows版本宏定义
Minimum system required |
Macros to define |
Win8 |
_WIN32_WINNT>=0x0602 WINVER>=0x0602 |
Win7 |
_WIN32_WINNT>=0x0601 WINVER>=0x0601 |
Windows Server 2008 R2 |
_WIN32_WINNT>=0x0601 WINVER>=0x0601 |
Windows Server 2008 |
_WIN32_WINNT>=0x0600 WINVER>=0x0600 |
Windows Vista |
_WIN32_WINNT>=0x0600 WINVER>=0x0600 |
Windows Server 2003 |
_WIN32_WINNT>=0x0502 WINVER>=0x0502 |
Windows XP |
_WIN32_WINNT>=0x0501 WINVER>=0x0501 |
Windows 2000 |
_WIN32_WINNT>=0x0500 WINVER>=0x0500 |
Windows NT 4.0 |
_WIN32_WINNT>=0x0400 WINVER>=0x0400 |
Windows Me |
_WIN32_WINDOWS=0x0500 WINVER>=0x0500 |
Windows 98 |
_WIN32_WINDOWS>=0x0410 WINVER>=0x0410 |
Windows 95 |
_WIN32_WINDOWS>=0x0400 WINVER>=0x0400 |
编译lib文件
1)打开工程X:\thrift-0.10.0\lib\cpp\thrift.sln
2)设置编译选项
项目属性->VC++目录-》包含目录中增加:
X:\windows\boost_1_55_0;$(OPENSSL_ROOT_DIR)\include;X:\thrift-0.10.0\lib\cpp\src;X:\windows\ThriftDemo\Common;
在库目录中增加:
$(BOOST_ROOT)\lib32-msvc-10.0;$(OPENSSL_ROOT_DIR)\lib;X:\thrift-0.10.0\lib\cpp\Debug;X:\windows\boost_1_55_0\lib32-msvc-10.0;
X:\windows\boost_1_55_0\lib32-msvc-10.0
X:\windows\OpenSSL-Win32\lib\VC
$(OPENSSL_ROOT_DIR)\lib;
X:\windows\libevent-2.0.21-stable
X:\thrift-0.10.0\lib\cpp\Debug;
连接器->输入中增加:openssl.lib;libthrift.lib;libthriftnb.lib;
C/C++ à 代码生产 à 运行库 修改为:“多线程调试 (/MTd)”
备注:查看命令lib接口的指令:Vs 的命令窗口:dumpbin /linkermember libthrift.lib > 1.txt
测试
1)打开工程,见
2)设置配置项目
项目属性->VC++目录-》包含目录中增加:
X:\windows\boost_1_55_0;X:\thrift-0.10.0\lib\cpp\src;X:\windows\ThriftDemo\Common;
在库目录中增加:
X:\thrift-0.10.0\lib\cpp\Debug;X:\windows\boost_1_55_0\lib32-msvc-10.0;
c/c++->代码生成->运行时库-> 多线程调试 (/MTd)