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