|
Boost Users : |
From: Mark Storer (MStorer_at_[hidden])
Date: 2004-06-23 12:32:15
I'm getting several compiler errors when trying to use the Spirit library.
When compiling one of the samples from the v1.6 documentation, I get a linker error:
SpiritTest.obj : fatal error LNK1179: invalid or corrupt file: duplicate comdat "?do_parse@?$parse_subrule_at_V?$match_at_Unil_t_at_spirit@boost@@@spirit_at_boost@@U?$subrules_scanner_at_V?$scanner_at_PBDU?$scanner_policies_at_U?$skipper_iteration_policy_at_Uiteration_policy_at_spirit@boost@@@spirit_at_boost@@Umatch_policy_at_23@Uaction_policy_at_23@@spirit_at_boos67ac75e0"
LNK1179 suggested that the /H _compiler_ option might be involved. It (supposedly) controls how long a symbol is allowed to be when the compiler is generating symbol names. I've tried several different variations on the /H option, /H512, /H1024, etc. They all give the same error message, and the symbol "?do_parse_at_..." doesn't get any longer (or shorter for that matter).
I also get a number compiler errors when I #include <boost/spirit.hpp>:
c:\sdks\boost-1.30.2\boost\spirit\utility\impl\chset\basic_chset.ipp(32) : error C2955: 'arg' : use of class template requires template argument list
c:\sdks\boost-1.30.2\boost\bind\arg.hpp(26) : see declaration of 'arg'
----------basic_chset.ipp, lines 31-33
template <typename CharT>
inline basic_chset<CharT>::basic_chset(basic_chset const& arg)
: rr(arg.rr) {}
----------arg.hpp lines 24-26
template<int I> class arg
{
};
The boost/bind include is in the core/composite/actions. Trying to mess with the order of inclusion seems Fraught With Peril. The basic_chset template is in "utility", and everything in "utility" depends on various bits and pieces of "core". basic_chset is derived from unary, which is defined in core/composite. A Gordian knot... and me without a sword.
--Mark Storer
Senior Software Engineer
Verity, Inc.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net