[Xapian-discuss] Compiling Xapian within a Cocoa project

Tae Won Ha qvacua at me.com
Fri Apr 26 07:45:49 BST 2013


Hi, folks.

I don't know much about C++, so please excuse my newbie question: I just tried to include Xapian in a dummy Cocoa project, ie created a new project and added the libxapian.a file installed via MacPorts. When I include xapian.h in an Objective-C++ file (either mm or h), the compilation fails with the following message:

=================
In file included from /opt/local/include/xapian.h:34:
In file included from /opt/local/include/xapian/database.h:32:
In file included from /opt/local/include/xapian/document.h:33:
/opt/local/include/xapian/valueiterator.h:143:10: error: expected member name or ';' after declaration specifiers
     bool check(Xapian::docid docid);
     ~~~~ ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/AssertMacros.h:1291:28: note: expanded from macro 'check'
         #define check(assertion)  __Check(assertion)
                                   ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/AssertMacros.h:280:5: note: expanded from macro '__Check'
                   do                                                                      \
                   ^
In file included from /Users/hat/Projects/OCXapian/OCXapian/OXAppDelegate.mm:9:
In file included from /Users/hat/Projects/OCXapian/OCXapian/OXAppDelegate.h:10:
In file included from /opt/local/include/xapian.h:50:
/opt/local/include/xapian/postingsource.h:223:43: error: too many arguments provided to function-like macro invocation
     virtual bool check(Xapian::docid did, Xapian::weight min_wt);
                                           ^
/opt/local/include/xapian/postingsource.h:223:5: error: 'virtual' can only appear on non-static member functions
     virtual bool check(Xapian::docid did, Xapian::weight min_wt);
     ^
/opt/local/include/xapian/postingsource.h:385:41: error: too many arguments provided to function-like macro invocation
     bool check(Xapian::docid min_docid, Xapian::weight min_wt);
                                         ^
/opt/local/include/xapian/postingsource.h:479:41: error: too many arguments provided to function-like macro invocation
     bool check(Xapian::docid min_docid, Xapian::weight min_wt);
                                         ^
/opt/local/include/xapian/postingsource.h:574:41: error: too many arguments provided to function-like macro invocation
     bool check(Xapian::docid min_docid, Xapian::weight min_wt);
=================

When I create a C++ file (h and cpp) and include xapian.h only in the cpp-file, it compiles fine. Is there something I am missing?

Best,
Tae



More information about the Xapian-discuss mailing list