VS2017编译thrift0.12.0
因为目前VS2017 VS自带的Nuget仅支持0.11.0.4及以下版本thrift的安装,故我自行编译了0.12.0版本的thrift
用VS2017 VS自带的Nuget安装boost、libevent、openssl 然后编译
>D:\MySpace\IDE\VS2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(391,5): warning MSB8028: 中间目录(Release\)包含从另一个项目(libthriftnb.vcxproj)共享的文件。 这会导致错误的清除和重新生成行为。
1>TApplicationException.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TOutput.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TAsyncChannel.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\stdcxx.h(23): fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
1>TConcurrentClientSyncInfo.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>BoostMonitor.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>BoostMutex.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>BoostThreadFactory.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>StdThreadFactory.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>ThreadManager.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TimerManager.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>Util.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>PeekProcessor.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TBase64Utils.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\protocol\tbase64utils.cpp(22): fatal error C1083: 无法打开包括文件: “boost/static_assert.hpp”: No such file or directory
1>TDebugProtocol.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TJSONProtocol.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TMultiplexedProtocol.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TProtocol.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TConnectedClient.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\stdcxx.h(23): fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
1>TServerFramework.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\stdcxx.h(23): fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
1>TSimpleServer.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\stdcxx.h(23): fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
1>正在编译...
1>TThreadPoolServer.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\server\tthreadpoolserver.h(23): fatal error C1083: 无法打开包括文件: “boost/atomic.hpp”: No such file or directory
1>TThreadedServer.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\stdcxx.h(23): fatal error C1083: 无法打开包括文件: “boost/config.hpp”: No such file or directory
1>TBufferTransports.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\tbuffertransports.h(26): fatal error C1083: 无法打开包括文件: “boost/scoped_array.hpp”: No such file or directory
1>TFDTransport.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TFileTransport.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>THttpClient.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\thttpclient.cpp(23): fatal error C1083: 无法打开包括文件: “boost/algorithm/string.hpp”: No such file or directory
1>THttpServer.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\thttpserver.cpp(24): fatal error C1083: 无法打开包括文件: “thrift/config.h”: No such file or directory
1>THttpTransport.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\tbuffertransports.h(26): fatal error C1083: 无法打开包括文件: “boost/scoped_array.hpp”: No such file or directory
1>TPipe.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\ttransportexception.h(23): fatal error C1083: 无法打开包括文件: “boost/numeric/conversion/cast.hpp”: No such file or directory
1>TPipeServer.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TSSLSocket.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TServerSocket.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TSimpleFileTransport.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TSocket.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TTransportException.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\transport\ttransportexception.h(23): fatal error C1083: 无法打开包括文件: “boost/numeric/conversion/cast.hpp”: No such file or directory
1>TTransportUtils.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>GetTimeOfDay.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>OverlappedSubmissionThread.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>SocketPair.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>TWinsockSingleton.cpp
1>d:\myspace\ide\thrift\thrift_0120\thrift-0.12.0\lib\cpp\src\thrift\windows\twinsocksingleton.h(34): fatal error C1083: 无法打开包括文件: “boost/noncopyable.hpp”: No such file or directory
1>正在编译...
1>WinFcntl.cpp
1>已完成生成项目“libthrift.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
编译报错如上, 在libthrift工程属性中设置C++附加包含目录 [在工程目录下]
D:\MySpace\DevDepend\thrift-0.12.0\thrift-0.12.0\lib\cpp\packages\openssl-vc141.1.1.0\build\native\include;D:\MySpace\DevDepend\libevent-2.1.8-stable\public\include;D:\MySpace\DevDepend\thrift-0.12.0\thrift-0.12.0\lib\cpp\packages\boost.1.69.0.0\lib\native\include;%(AdditionalIncludeDirectories)
再次编译,报错如下
\thttpclient.cpp(25): fatal error C1083: 无法打开包括文件: “thrift/config.h”: No such file or directory
查资料得知 是因为没有正常生成config.h文件。于是我手动写了一个放在 D:\MySpace\DevDepend\thrift-0.12.0\thrift-0.12.0\lib\cpp\src\thrift 目录下 如下
#include <stdlib.h>
#include <string.h>
#define PACKAGE_VERSION "0.12.0"
然后继续编译,编译成功!!!