小编jay*_*947的帖子

未定义的引用`gzopen`错误

我的C程序使用一些zlib函数(比如gzopen,gzread).我已经zlib.h在我的程序中包含了头文件,并-lz在编译时添加了选项,但我仍然得到一个错误,即gz函数有未定义的引用.我正在使用kubuntu 11.10并安装了以下软件包:libgh-zlib-dev,zlib1g-dbg,zlib1g和zlib1g-dev.

我试过改变连接命令的位置,但没有运气.这是我现在拥有的那个:

CFLAGS = -Wall -pthread -lm -lz -std = c99-Wextra

c compilation zlib hyperlink undefined-reference

7
推荐指数
1
解决办法
1万
查看次数

使用简单的Boost :: Spirit语法?

我无法使用语法,因此我将其简化为只解析整数.仍然无法让它发挥作用.它是以下语法:

template<typename Iterator>
struct rangeGrammar : qi::grammar<Iterator, int()>
{
    rangeGrammar() :
    rangeGrammar::base_type(number)
    {
        using qi::int_;
        using qi::_1;
        using qi::_val;

        number = int_[_val = _1];
    }
    qi::rule<Iterator, int()> number;
};
Run Code Online (Sandbox Code Playgroud)

它应该只解析一个整数(我知道我可以告诉解析函数使用int_作为语法,但我不知道这个例子中有什么问题).

我的解析功能是:

/* n is a std::string provided by the user */
rangeGrammar<std::string::const_iterator> grammar;
int num = 0;
qi::phrase_parse(n.start(), n.end(), grammar, num);
std::cout << "Number: " << num << std::endl;
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:

/boost/spirit/home/qi/reference.hpp:在成员函数'bool boost :: spirit :: qi :: reference :: parse(Iterator&,const Iterator&,Context&,const Skipper&,Attribute&)const [with Iterator = __gnu_cxx :: __ normal_iterator>,Context = …

c++ boost-spirit-qi

5
推荐指数
1
解决办法
1094
查看次数

Boost :: Spirit解析规则中的复合属性生成

我有以下解析规则:

filter = (input >> (qi::repeat(0,2)[char_(';') >> input]))
Run Code Online (Sandbox Code Playgroud)

input是一个规则,返回一个std::vector<int>我将vec简称为的向量.

问题是:filter规则返回什么复合属性?

我试过了:

fusion::vector <vec,std::vector <fusion::vector <char,vec> > >
Run Code Online (Sandbox Code Playgroud)

但它失败了,我不知道为什么.

boost boost-spirit boost-spirit-qi

2
推荐指数
1
解决办法
218
查看次数