Slice2cpp编译的报头文件无法打开的错误

来源:互联网 发布:在国外注册域名 编辑:程序博客网 时间:2024/06/07 22:39

2 cocoliu84 云龙九现 于 2013.10.17 16:42 提问

最近学习Ice,使用的是Ice3.4.2。在Ice用户手册的IceGrid那一节。有个Ripper的范例。其Slice文件如下:

module Ripper{
exception EncodingFialedException
{
string reason;
};

sequence Samples;

interface Mp3Encoder
{
Ice::ByteSeq encode(Samples leftSamples,Samples rightSamples)
throws EncodingFailedException;

     Ice::ByteSeq flush()     throws EncodingFailedException;

};

interface Mp3EncoderFactory

Mp3Encoder* createEncoder();
};

};

我将其在cmd窗口运行
slice2cpp Ripper.ice
后出现Ice::ByteSeq错误的提示

通过访问ZeroC的官网,发现前面需要添加头文件
#include

我按照官网的说明做了改进。修改后的Slice文件如下:

#include <Ice/BuiltinSequences.ice>

module Ripper{
exception EncodingFialedException
{
string reason;
};

sequence Samples;

interface Mp3Encoder
{
Ice::ByteSeq encode(Samples leftSamples,Samples rightSamples)
throws EncodingFailedException;

 Ice::ByteSeq flush()     throws EncodingFailedException;

};

interface Mp3EncoderFactory

Mp3Encoder* createEncoder();
};

};

再在cmd命令下运行,仍然出现can not open "Ice/BuiltinSequences.ice"文件的错误提示。

通过查找,有人说需要使用slice2cpp -I命令,将其添加到文件搜索目录里。我也试过,但还是不行。哪位达人可以帮帮我?

感激不尽

============================================

1个回答

按赞数排序 
hzx344407916
闲人hzx   2015.07.09 15:41

我也遇到了,解决方法如下:
ICE版本:ice3.6.0
待编译slice: callback.ice
slice2cpp在文件夹ZeroC\ice3.6.0\bin中
我在ZeroC\ice.3.6.0目录下运行指令
bin\slice2cpp -I. -Islice bin\callback.ice
生产的callback.h和callback.cpp文件在文件目录ZeroC\ice3.6.0下

0 0
原创粉丝点击