The problem is that the Solaris compiler has all the prototypes for single
precision math functions in sunmath.h. - And if I remember right (I don't
have a Solaris box available here), you have to link against libsunmath to
get the corresponding implementations.
I've seen quite a few posts about building Inventor on Solaris using g++,
but I'm not sure anyone has made it through with the Sun compiler.
Rasmus
On Tue, 17 Sep 2002, Jarek Rzepecki wrote:
> Hello!
> I have a following problem when trying to compile OIV on Solaris:
> gmake[2]: Entering directory `/home/jarekr/inventor/tools/ppp'
> CC -I. -I../../lib/database/include
> -I../../lib/interaction/include -I../../lib/nodekits/include
> -I../../libSoXt/include -DIVPREFIX=\"/usr\" -O -DNDEBUG -c ppp.c++
> CC: Invalid input file name ppp.c++, no output generated for this file.
> CC -L/home/jarekr/Unix-OpenInv//usr/lib ppp.o -lm -o ppp
> ld: fatal: file ppp.o: cannot open file: No such file or directory
> ld: fatal: File processing errors. No output written to ppp
>
>
> So i have changed ppp.c++ to ppp.cpp and it worked but:
>
> gmake[2]: Entering directory `/home/jarekr/inventor/tools/ppp'
> CC -I. -I../../lib/database/include
> -I../../lib/interaction/include -I../../lib/nodekits/include
> -I../../libSoXt/include -DIVPREFIX=\"/usr\" -O -DNDEBUG -c -o
> ppp.o ppp.cpp"../../lib/database/src/sb/SbCylinder.c++", line 224: Error:
> The function "sqrtf" must have a prototype.
> "../../lib/database/src/sb/SbLine.c++", line 189: Warning: pos hides
> SbLine::pos.
> "../../lib/database/src/sb/SbLine.c++", line 189: Warning: dir hides
> SbLine::dir.
> "../../lib/database/src/sb/SbMatrix.c++", line 590: Error: Cannot cast
> from const float(*)[4] to SbMatrix.
> "../../lib/database/src/sb/SbMatrix.c++", line 590: Error: Formal argument
> in of type const SbMatrix& in call to SbMatrix::affine_inverse(const
> SbMatrix&, SbMatrix&) const is being passed int.
> "../../lib/database/src/sb/SbMatrix.c++", line 1315: Error: Cannot assign
> float(*)[4] to SbMatrix without "SbMatrix::operator=(const SbMatrix&)";.
> "../../lib/database/src/sb/SbMatrix.c++", line 1357: Error: Cannot assign
> float(*)[4] to SbMatrix without "SbMatrix::operator=(const SbMatrix&)";.
> "../../lib/database/src/sb/SbRotation.c++", line 101: Error: The function
> "acosf" must have a prototype.
>
> etc...
> What is wrong?
> Thank you...
> Jarek
|