thrift编译设置

·#编译thrift0.11

thrift编译设置


  • 附加包含目录
    1 2 3 Z:\libraries\thrift\thrift-0.11.0\lib\cpp\src; Z:\libraries\thrift\thrift-0.11.0\lib\cpp\src\thrift\windows; Z:\libraries\boost\boost_1_66_0;
  • 预处理器定义
    1 2 3 4 HAVE_CONFIG_H=1 WIN32 _DEBUG _CONSOLE
  • 代码生成:
    1 2 DEBUG 运行库 MTD RELEASE 运行库 MT
  • 预编译头
    1 不使用预编译头
  • 附加依赖项
    1 2 3 libssl.lib libthrift.lib libcrypto.lib
  • 附加库目录
    1 2 3 Z:\libraries\boost\boost_1_66_0\stage\lib; z:\libraries\openssl\OpenSSL-Win32\lib; Z:\libraries\thrift\thrift-0.11.0\lib\cpp\Debug-mt;
  • ## 错误处理使用vs2017编译thrift项目时出现以下错误:objbase.h(230): error C2760错误的解决的解决办法: 1 2 #在stdafx.h中添加 #define WIN32_LEAN_AND_MEAN ## openssl 编译设置
  • 动态编译
    1 2 3 4 5 6 WIN64 perl Configure VC-WIN64A no-asm --prefix=z:\libraries\openssl\vc-64 nmake clean nmake nmake test nmake install
  • 静态编译
    1 2 3 4 5 6 makefile and configdata 两个文件中的/MD改为/MT perl Configure VC-WIN64A no-asm --prefix=z:\libraries\openssl\vc-64_static nmake clean nmake nmake test nmake install
  • ## thrift 0.11.0编译问题及解决:
  • 一、包含目录要加上openssl的目录引用
  • 二、THttpserver.cpp与THttpclient.cpp中的 1 2 //#include 此行改为 #include
  • 三、添加以下宏定义 1 2 //在中 #define PACKAGE_VERSION “${PACKAGE_VERSION}”
  • ## thrift客户端与服务器编译设置:(release编译设置静态编译WITH VS2017)
  • c++常规–附加包含目录:
    1 2 3 Z:\libraries\thrift\thrift-0.11.0\lib\cpp\src Z:\libraries\thrift\thrift-0.11.0\lib\cpp\src\thrift\windows Z:\libraries\boost\boost_1_66_0
  • 链接器–常规–附加库目录
    1 2 3 Z:\libraries\thrift\thrift-0.11.0\lib\cpp\release-mt Z:\libraries\boost\boost_1_66_0\stage\lib141 Z:\libraries\openssl\OpenSSL-Win32\lib
  • 链接器–输入–附加依赖项
    1 2 3 libthrift.lib libssl.lib libcrypto.lib
  • ## 使用odb时自定义生成:
  • 在项目中选中类文件如:employee.hxx 右键–属性–配置属性–常规–项类型 设置成:自定义生成工具
  • 然后选中:自定义生成工具并设置如下:
  • 命令行:
    1 odb.exe --std c++11 --database sqlite --generate-query --generate-schema --table-prefix boost_ employee.hxx
  • 说明:
    1 odb employee.hxx
  • 输出:
    1 2 3 employee-odb.hxx employee-odb.ixx employee-odb.cxx
  • ## docker使用hexo
  • 1.安装Hexo
    1 docker run --name hexo -it -p 8083:80 -v `pwd`: /usr/share/nginx/html/source simplyintricate/hexo
  • 2.发布一篇blog
    1 docker exec -it hexo hexo new "This is one post"
  • ## ODB项目设置:
  • 输入
    1 db-sqlite.lib;odb.lib
  • 包含目录
    1 2 3 z:\libraries\orm\sqlite3\sqlite-amalgamation-3220000; z:\libraries\orm\odb2.4\libodb-2.4.0; z:\libraries\orm\odb2.4\libodb-sqlite-2.4.0;
  • 库目录
    1 z:\libraries\orm\sqlite3\;
  • ## odb备注
    1 使用编译指令#pragma db transient 把字段声明为临时的,也就是该字段不保存与数据库中。
    ## Error: ENOSPC: no space left on device查看存储空间
    1 $df -h
    查看i节点
    1 $df -i
    看是那种情况。 不幸的是我哪种都不是,后来在stackflow找到了答案。 问题原因:You may have reached your quota of watches. 解决办法 查看目前的最大值 To find your current limit, type this in your terminal:
    1 $cat /proc/sys/fs/inotify/max_user_watches
    增加最大值 Which is typically 8192 by default. To increase your limit, type this:
    1 $sudo sysctl fs.inotify.max_user_watches=16384
    永久设置最大值 Then restart django. To permanently set this limit, type this:
    1 $echo 16384 | sudo tee -a /proc/sys/fs/inotify/max_user_watches
    0 - [编译thrift0.11](/tags/%E7%BC%96%E8%AF%91thrift0-11/) [**Newer** 金箍棒之殇 ](/posts/15069/)[**Older** 如何同步Hexo网站到github ](/posts/54923/) ### Categories - [我的作品](/categories/%E6%88%91%E7%9A%84%E4%BD%9C%E5%93%81/)3 - [敏捷开发](/categories/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/)1