2 cocoliu84 cocoliu84 于 2013.10.17 16:42 提问

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

最近学习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
hzx344407916   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下

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!