vs2010编译thrift之compiler出错的处理方法
来源:互联网 发布:windows phone 官网 编辑:程序博客网 时间:2024/05/14 02:56
问题描述
在使用visual studio 2010 SP1编译thrift-0.9.1的compiler时,出现:
The command "flex -o "src\\thriftl.cc" src/thriftl.ll
bison -y -o "src\thrifty.cc" --defines="src/thrifty.hh" src/thrifty.yy
问题原因
flex和bison原本是linux下的可执行程序,windows上需要分别安装bison.exe和flex.exe。
解决步骤
1)下载并安装bison
从此处下载bison安装程序,安装路径随意,比如我安装在D:\dev_tools\GnuWin32目录下,安装之后GnuWin32目录下将包括:
-GnuWin32/
--bin/
--contrib/
--doc/
--include/
--info/
--lib/
--man/
--manifest/
--share/
--uninstall/
2)下载并安装flex
从此处下载flex解压包,flex包内包含bin,contrib,man以及manifest四个目录。这里将包内的所有文件夹复制到GnuWin32目录,比如我就复制:
flex/bin -> GnuWin32/
flex/contrib -> GnuWin32/
flex/man -> GnuWin32/
flex/manifest ->GnuWin32/
3)添加环境变量
将GnuWin32/bin(需要全路径)添加到Windows环境变量中。
4)重启Visual Studio 2010 SP1。如果不重启,此时编译依然会报错。
5)此时编译会报错Cannot open source file: 'src\thriftl.cc': No such file or directory,原因是compiler工程里边的Pre-Build Event有错。
flex-o "src\\thriftl.cc" src/thriftl.ll
bison -y -o "src\thrifty.cc" --defines="src/thrifty.hh" src/thrifty.yy
flex的语法需要-o之后没有空格,所以需要将-o和src之间的空格去掉,即
flex -o"src\\thriftl.cc" src/thriftl.ll
bison -y -o "src\thrifty.cc" --defines="src/thrifty.hh" src/thrifty.yy
6)接着就是最后一个错误了
Cannot open include file: 'unistd.h': No such file or directory
这里会提示找不到unistd.h,unistd.h是linux下的头文件,相当于Windows下的Windows.h。将thriftl.cc中的#include <unistd.h>屏蔽是没有用的,因为这个文件是自动生成的。
在{thrift}/compiler/cpp目录下建立unistd.h空文件,并将compiler工程属性(Properties -> C/C++ -> General -> Additional Include Directories里加入当前目录.即可。
All Done!
- vs2010编译thrift之compiler出错的处理方法
- 修复安装vs2010出错的处理方法
- VC2010编译 thrift compiler
- VS2010编译thrift
- VS2010编译Thrift过程
- VS2010下编译thrift之学习文档一
- VC6.0 编译的程序 转换成 VS2010后,编译出错问题解决方法的总结
- C-MS Compiler Environment(VS2010) (特殊的编译环境)
- VS2010编译MFC程序出错的原因
- 关于vc2005编译asm文件出错的一个处理方法
- thinkphp3.2.3编译时new model()出错的处理方法
- thrift之compiler源码详解-1
- thrift之compiler源码详解-2
- thrift之compiler源码详解-3
- thrift之compiler源码详解-MD5
- thrift之compiler源码详解-总结
- thrift编译方法
- qt(qtopia)之编译出错处理
- HDU1159 Common Subsequence
- Sicily 1231. The Embarrassed Cryptography【高精度取余】
- 以Telnet方式通过SMTP、POP、IMAP使用邮箱
- Trie树
- hdu5135 状态压缩DP
- vs2010编译thrift之compiler出错的处理方法
- 了解URL编码的基本概念,在javascript和java程序中使用内置的API进行编码和解码
- Hdu2822Dogs bfs+优先队列
- 十大经典管理学定律
- CSS 颜色代码大全
- 【笔记】Java编程思想—一复用类
- HDU1423 Greatest Common Increasing Subsequence
- Threads and QObjects
- 【博客管理】博客格式说明【置顶】