Aspell won't build on OS X 10.9 (Mavericks)

2019-07-16 14:47发布

问题:

It fails thus:

./common/errors.hpp:17:36: error: redefinition of 'aerror_other' with a different type: 'const acommon::ErrorInfo *const' vs 'const struct AspellErrorInfo *const'

I've seen this error mentioned several times, but I've not seen any fixes.

I suppose I could install Fink or MacPorts, but my experience with both of those has been mixed (and frustrating), and it seems like overkill for just one program. Is there a way to get aspell to build, or is Fink or MacPorts the only practical option? Which will cause fewer problems, Fink or MacPorts?

回答1:

The definition of those externs is not for C++ - surround the entire block with these preprocessor tags in interfaces/cc/aspell.h:

#ifndef __cplusplus
extern const struct AspellErrorInfo * const aerror_other;
...snip...
extern const struct AspellErrorInfo * const aerror_invalid_expression;
#endif


回答2:

The answer by @lotsoffreetime works but needs some clarification.

Basically, you have to edit the interfaces/cc/aspell.h file by adding

#ifndef __cplusplus

before the list of "extern" errors, which starts with:

extern const struct AspellErrorInfo * const aerror_other;

and add

#endif

at the end of the list, after it reads

extern const struct AspellErrorInfo * const aerror_invalid_expression;