无法编译gsoap的安全版本

时间:2014-08-22 13:09:44

标签: c++ web-services gsoap

我已经下载了gSOAP 2.8.17r stable(更新)(20.7 MB)

在/ bin /中有2个exe wsdl2h.exe和soapcpp2.exe但是它们 仅适用于非安全网站,现在对于安全的wsdl2h.exe,gsoap / VisualStudio2005 /中有一个源代码,我们必须编译。在编译时我遇到了错误

我已经安装了minGW,bison,flex,m4,perl,....

还为项目soapcpp2中的.l和.y文件创建了构建自定义工具 如自述文件中所示。

-------读我---------

Flex and Bison for Windows
==========================

Visual Studio 2005 Solution files for soapcpp2 and wsdl2h are included.

If not already installed, install the Platform SDK (R2) for `winsock2.h`.

To build `soapcpp2.exe`, first install Bison and Flex (in the default dirs):

<http://gnuwin32.sourceforge.net/packages/bison.htm>
<http://gnuwin32.sourceforge.net/packages/flex.htm>

then add the FlexBison.rules as explained here:

<http://msdn2.microsoft.com/en-us/library/aa730877(VS.80).aspx>

These custom-build rules are used to build the scanner and parser for
`soapcpp2.exe`.

To build `wsdl2h.exe`, you first need to build `soapcpp2.exe` and install it in
Program Files or copy it to the `wsdl` directory. This is needed to execute the
custom-build step on `wsdl.h` to generate `wsdlStub.h`, `wsdlH.h`, and
`wsdlC.cpp`.

Build Rules for `soapcpp2.exe` VS 2008 and 2010
===============================================

To build `soapcpp2.exe` you need to install Flex and Bison. To do so, you need
to create custom build rules to compile `.l` and `.y` files with Flex and
Bison.

Please see:

<http://msdn.microsoft.com/en-us/library/aa730877(VS.80).aspx#vccustombr_topic3>

In VS2008, there is UI available to help you create the custom build rule.

Make sure you have `flex.exe`, `bison.exe`, and `m4.exe` on the system search
path.

- Right click on the `.l` file and select properties
- Configuration -> All Configurations
- General -> Item Typ e-> Custom Build Tool
- Apply
- Custom Build Tool -> General -> Command Line -> `flex -olexer.c lexer.l`
- Custom Build Tool -> General -> Outputs -> `lexer.c`
- Custom Build Tool -> General -> Additional Dependencies -> `parser.y parser.c`
- Apply
- Select the `.y` file in the solution explorer
- Configuration -> All Configurations
- General -> Item Type -> Custom Build Tool
- Apply
- Custom Build Tool -> General -> Command Line -> `bison -oparser.c parser.y`
- Custom Build Tool -> General -> Outputs -> `parser.c parser.h`

In VS2010, there may not be a UI available to create the custom build rules.
To add or modify build rules in VS2010 you need to edit:

`%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations`

and/or

`%ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations`

-----------错误-------------

1>------ Build started: Project: soapcpp2, Configuration: Debug Win32 ------
1>Performing Custom Build Step
1>bison: cannot open file `parser.y': No such file or directory
1>Project : error PRJ0019: A tool returned an error code from "Performing Custom Build Step"
1>Build log was saved at "file://c:\gs\gsoap-2.8\gsoap\VisualStudio2005\soapcpp2\soapcpp2\Debug\BuildLog.htm"
1>soapcpp2 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

2 个答案:

答案 0 :(得分:0)

要构建cd ..,您需要安装Flex和Bison。要做到这一点,你需要 创建自定义构建规则以使用Flex和编译soapcpp2.exe.l文件 Bison。请参阅:http://msdn.microsoft.com/en-us/library/aa730877(VS.80).aspx#vccustombr_topic3

您可以从sourceforge下载Win flex-bison,当您使用VS编译soapcpp2时,您应该设置自定义构建规则,请参阅https://sourceforge.net/p/winflexbison/wiki/Visual%20Studio%20custom%20build%20rules/ 祝你好运!

答案 1 :(得分:0)

我认为parser.ylexer.l只是我们在soapcpp2项目中的soapcpp2_lex.lsoapcpp2_yacc.y文件的错误名称。

所以只需更正两个文件的“命令行”:

for '.y' file: bison -oparser.c $(InputFileName)
for '.l' file: flex -olexer.c $(InputFileName)
相关问题