这个问题与使用Windows的导出/导入关键字__declspec (dllexport/dllimport)有关。在某些情况下,这些关键字可能会导致链接错误。因此,解决此问题的一种方法是在类定义中删除__declspec (dllexport)关键字。
以下是一个可能导致此问题的代码示例:
#include
class my_parser : public boost::spirit::qi::grammar
{
public:
my_parser() : my_parser::base_type(start)
{
start = boost::spirit::qi::lexeme[+boost::spirit::ascii::alpha];
}
private:
boost::spirit::qi::rule start;
};
int main()
{
std::string input = "hello world";
std::string output;
my_parser parser;
boost::spirit::qi::parse(input.begin(), input.end(), parser, output);
return 0;
}
解决此问题的一个方法是从类定义中删除__declspec (dllexport)关键字,如下所示:
#include
class my_parser : public boost::spirit::qi::grammar
{
public:
my_parser() : my_parser::base_type(start)
{
start = boost::spirit::qi::lexeme[+boost::spirit::ascii::alpha];
}
private:
boost::spirit::qi::rule start;
};
int main()
{
std::string input = "hello world";
std::string output;
my_parser parser;
boost::spirit::qi::parse(input.begin(), input.end(), parser, output);
return 0;
}
上一篇:编译common/CMakeFiles/common.dir/demo_system.c.o时出现错误
下一篇:编译coreutils时出错 - 错误:函数可能适合使用'const'属性 [-Werror=suggest-attribute=const]。