Rob Lahaye wrote:
> Right, you've got it already. So here we go again:
> 
> $ cat test.C
> #define uintmax_t unsigned long long
> #include <boost/cstdint.hpp>
> int main () { return 0; }
> 
> $ g++33 -DHAVE_CONFIG_H -Iboost/libs/regex/src -Isrc -Iboost \
>     -I/usr/local/include -I/usr/X11R6/include -fno-exceptions \
>     -W -Wall -c -o test.lo test.C
> In file included from test.C:2:
> boost/boost/cstdint.hpp:121: error: redeclaration of C++ built-in
> type `long'

Ok, so the problem is that you have a 'uintmax_t' variable defined on
your system but it isn't accessible through either <stdint.h> or
<inttypes.h> so lyx's configure script is unable to find it. It
therefore inserts its own definition into config.h

#define uintmax_t unsigned long long

This screws things up in <boost/cstdint.hpp> because the code there
assumes that 'uintmax_t' has a particular definition.

So the problem becomes, ascertain the name of the standard header on
your box that introduces 'uintmax_t'. If the variable exists on your
box, then we shouldn't be redefining it.

I take it that
$ grep -r uintmax_t /usr/include

throws up a positive match?

-- 
Angus

Reply via email to