It sounds like something is doing a

#define min(...) ...
#define max(...) ...

hat's not really a nice thing to do.  It's not a namespace, it's macro
issue.

If you need to include these files before the OCRopus files, you need
to

#undef min
#undef max

before including the OCRopus include files.

I've renamed the THREAD identifiers in glutils.h to help avoid
conflicts.  You should be able to include OCRopus before the other
files now.

Tom

On Jun 18, 9:25 am, Mridul Kashatria <[email protected]> wrote:
> Hello,
>
> I was compiling a C++ program using MYSQL database library and Ocropus
> library.
>
> It was running fine until I included <mysql.h> and <my_global.h>. Now
> gcc gives warning like this,
>
> ---------
> In file included from /usr/include/mysql/my_global.h:80,
>                  from pdfOCR.cpp:19:
> /usr/include/mysql/my_config.h:1234:1: warning: "THREAD" redefined
> In file included from /usr/local/include/iulib/iulib.h:55,
>                  from /usr/local/include/ocropus/ocropus.h:30,
>                  from pdfOCR.cpp:14:
> /usr/local/include/iulib/components.h:38:1: warning: this is the
> location of the previous definition
> ------------
>
> If I include the ocropus.h file _after_ including my_global.h, the
> program doesn't compile at all and gives errors like this.
>
> -----------
> In file included from /usr/local/include/colib/classifier.h:34,
>                  from /usr/local/include/colib/colib.h:34,
>                  from /usr/local/include/ocropus/ocropus.h:29,
>                  from pdfOCR.cpp:21:
> /usr/local/include/colib/narray-util.h:72:30: error: macro "max"
> requires 2 arguments, but only 1 given
> /usr/local/include/colib/narray-util.h:85:30: error: macro "min"
> requires 2 arguments, but only 1 given
> In file included from /usr/local/include/ocropus/ocropus.h:68,
>                  from pdfOCR.cpp:21:
> /usr/local/include/ocropus/docproc.h:61:46: error: macro "min" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:61:55: error: macro "max" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:66:46: error: macro "min" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:66:55: error: macro "max" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:74:42: error: macro "min" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:74:51: error: macro "max" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:79:42: error: macro "min" requires
> 2 arguments, but only 1 given
> /usr/local/include/ocropus/docproc.h:79:51: error: macro "max" requires
> 2 arguments, but only 1 given
> In file included from /usr/local/include/ocropus/ocropus.h:71,
>                  from pdfOCR.cpp:21:
> /usr/local/include/ocropus/pages.h:156:36: error: macro "min" requires 2
> arguments, but only 1 given
> /usr/local/include/ocropus/pages.h:157:36: error: macro "max" requires 2
> arguments, but only 1 given
> In file included from /usr/local/include/ocropus/ocropus.h:73,
>                  from pdfOCR.cpp:21:
> /usr/local/include/ocropus/pagesegs.h:102:37: error: macro "max"
> requires 2 arguments, but only 1 given
> In file included from /usr/local/include/colib/narray-util.h:37,
>                  from /usr/local/include/colib/classifier.h:34,
>                  from /usr/local/include/colib/colib.h:34,
>                  from /usr/local/include/ocropus/ocropus.h:29,
>                  from pdfOCR.cpp:21:
> /usr/local/include/colib/misc.h:51: error: expected ‘)’ before ‘a’
> /usr/local/include/colib/misc.h:51: error: expected ‘)’ before ‘a’
> /usr/local/include/colib/misc.h:58: error: expected ‘)’ before ‘a’
> /usr/local/include/colib/misc.h:58: error: expected ‘)’ before ‘a’
> In file included from /usr/local/include/colib/classifier.h:34,
>                  from /usr/local/include/colib/colib.h:34,
>                  from /usr/local/include/ocropus/ocropus.h:29,
>                  from pdfOCR.cpp:21:
> /usr/local/include/colib/narray-util.h:72: error: ‘colib::max’ declared
> as an ‘inline’ variable
> /usr/local/include/colib/narray-util.h:72: error: template declaration
> of ‘T colib::max’
> /usr/local/include/colib/narray-util.h:73: error: expected
> primary-expression before ‘value’
> /usr/local/include/colib/narray-util.h:73: error: expected ‘}’ before
> ‘value’
> /usr/local/include/colib/narray-util.h:74: error: expected
> unqualified-id before ‘for’
> /usr/local/include/colib/narray-util.h:74: error: expected constructor,
> destructor, or type conversion before ‘<’ token
> /usr/local/include/colib/narray-util.h:74: error: expected constructor,
> destructor, or type conversion before ‘++’ token
> /usr/local/include/colib/narray-util.h:79: error: expected
> unqualified-id before ‘return’
> /usr/local/include/colib/narray-util.h:85: error: ‘min’ declared as an
> ‘inline’ variable
> /usr/local/include/colib/narray-util.h:85: error: template declaration
> of ‘T min’
> /usr/local/include/colib/narray-util.h:86: error: expected
> primary-expression before ‘value’
> /usr/local/include/colib/narray-util.h:86: error: expected ‘}’ before
> ‘value’
> /usr/local/include/colib/narray-util.h:87: error: expected
> unqualified-id before ‘for’
> /usr/local/include/colib/narray-util.h:87: error: expected constructor,
> destructor, or type conversion before ‘<’ token
> /usr/local/include/colib/narray-util.h:87: error: expected constructor,
> destructor, or type conversion before ‘++’ token
> /usr/local/include/colib/narray-util.h:93: error: expected
> unqualified-id before ‘return’
> /usr/local/include/colib/narray-util.h:94: error: expected declaration
> before ‘}’ token
> -----------
>
> There are I think namespace issues. Please help fixing this.
>
> Thanks
>
> Mridul

-- 
You received this message because you are subscribed to the Google Groups 
"ocropus" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/ocropus?hl=en.

Reply via email to