Unable to Link Performer C++ files

New Message Reply Date view Thread view Subject view Author view

Nuno Godinho (mgo++at++minerva.inesc.pt)
Wed, 14 Feb 1996 23:19:35 +0100


I'm sorry if this is a basic question. This is my first big project in a
SGI and UNIX is still very strange to me.

My problem: I got Performer 2.0 version and the first thing I did was
trying to Make the examples. I managed to make the C versions but the
C++ compilation unfortunately aborts everytime.

This is what I get:

--------start------------
mgo++at++eolo> make
making IrisGL DSO version of bench.igldso
        /usr/bin/CC -xansi -DIRISGL -nostdinc
-I/usr/include/CC -I/usr/include -O -Olimit 2000 -MDupdate Makedepend
-c ../bench.C
/usr/bin/CC: Not found
*** Error code 1
smake: 1 error
*** Error code 2
smake: 1 error
--------end------------

I then found that a 'commondefs' file is included in the Makefile. After
some digging I found that I have to redefine CXX.

setenv CXX /usr/local/bin/g++
make -e

This is quite odd. But then I start getting new errors. I'm stuck due to
my few knowledges no UNIX.

I then decided to start a Makefile from scratch. Following the
Programmer'Guide indications I wrote it as simple as possible. The
source is compiled but it just doesn't link.

Here's my own Makefile:

----------start------------
SHELL = /bin/sh

INCLUDE = -I. -I.. -I/usr/src/Performer/include -I/usr/include/Performer

CC=g++

DSOLINKS = \
        -L$(PFROOT)/usr/lib$(LIBBITSUF) \
        -L$(PFROOT)/usr/lib$(LIBBITSUF)/libpfdb \
        -L$(PFROOT)/lib$(LIBBITSUF)

LIVRARIAS = -ignore_unresolved \
        -lpfdu_igl -lpfui -lpfutil_igl -lpf_igl -limage -lgl -lXmu -lX11 \
        -lm -lfpe -lfm -lmalloc -lC

SYSTEM_IRISGL = -lmpc -lXirisw -lXm -lXt -lX11

CFLAGS = ${INCLUDE} ${COPT}

TARGETS = ov

ov: ov.o
        ${CC} ${CFLAGS} -o ov ov.o $(DSOLINKS) ${LIVRARIAS} ${SYSTEM_IRISGL}
.h.C:
        touch $++at++
.C.o:
        ${CC} ${CFLAGS} -c $?

clear:
        ++at++rm *.o ${TARGETS}
---------------end----------------------

And here is the result I get from this Makefile on a single ov.C file
(it was already compiled into ov.o)

----------------start-------------------
mgo++at++eolo> make
        g++ -I. -I.. -I/usr/src/Performer/include
-I/usr/include/Performer -o ov ov.o -L/usr/lib -L/usr/lib/libpfdb
-L/lib -ignore_unresolved -lpfdu_igl -lpfui -lpfutil_igl -lpf_igl
-limage -lgl -lXmu -lX11 -lm -lfpe -lfm -lmalloc -lC -lmpc -lXirisw
-lXm -lXt -lX11
collect2: ld returned 1 exit status
/usr/bin/../lib/ld:
The shared object /usr/lib/libpfui.so did not resolve any symbols.
        You may want to remove it from your link line.
Unresolved:
pfUpdatable::operator new(unsigned int)
pfScene::pfScene(void)
pfGroup::addChild(pfNode *)
pfLightSource::pfLightSource(void)
pfPipeWindow::pfPipeWindow(pfPipe *)
pfPipeWindow::setWinType(unsigned int)
pfPipeWindow::setName(char const *)
pfPipeWindow::setOriginSize(int, int, int, int)
pfPipeWindow::open(void)
pfChannel::pfChannel(pfPipe *)
pfChannel::setScene(pfScene *)
pfChannel::setFOV(float, float)
pfNode::getBound(pfSphere *)
pfChannel::setNearFar(float, float)
pfChannel::setView(pfVec3 &, pfVec3 &)
*** Error code 1 (bu21)
mgo++at++eolo>
---------end---------------

Sorry for such a big message, but I am clueless.
My only solution is to go back to the C API.

Please help:
    -explaining me what goes wrong or
    -sending me your working Makefiles

thanks
       Nuno


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:24 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.