问题描述
- 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命令,将其添加到文件搜索目录里。我也试过,但还是不行。哪位达人可以帮帮我?
感激不尽
解决方案
我也遇到了,解决方法如下:
ICE版本:ice3.6.0
待编译slice: callback.ice
slice2cpp在文件夹ZeroCice3.6.0bin中
我在ZeroCice.3.6.0目录下运行指令
binslice2cpp -I. -Islice bincallback.ice
生产的callback.h和callback.cpp文件在文件目录ZeroCice3.6.0下