Monday, February 25, 2008

DTK/DGL path problem

We are having a small problem when trying the CCallbackHelix example. We initially installed the different packages of DIVERSE (dgl, dtk...) under these directories:

/usr/local/devtools/dgl
/usr/local/devtools/dtk
etc

And we recently installed DIVERSE with CMakeLists.txt files following your instructions under
/usr/local/DIVERSE/install
built in: /usr/local/DIVERSE/build
and source in: /usr/local/DIVERSE/source

When we change something in ../source/dgl/lib/DGLWindow.cpp we do a "make install" in the build directory as you suggested us to do.

However, when making the example in " /usr/local/DIVERSE/source/dgl
/examples/CCallbackHelix " it is using the same old libraries from /usr/local/devtools...

This is what we get when making the CCallbackHelix example:

[root@groupe2 CCallbackHelix]# make
g++ -I/usr/local/devtools/dtk/include -I/usr/local/include -I/usr/local/devtools/Producer/include -I/usr/local/devtools/OpenThreads/include -M *.cpp > .depend
sed -e '/^[A-Za-z1-9]/s/^/.\//' .depend > .depend-temp
mv -f .depend-temp .depend
g++ -O3 -Wall -g -O3 -Wall -I/usr/local/devtools/dtk/include -I/usr/local/include -I/usr/local/devtools/Producer/include -I/usr/local/devtools/OpenThreads/include -c -o helix.o helix.cpp
g++ -o helix helix.o -O3 -Wall -g -O3 -Wall -L/usr/local/devtools/dtk/lib -ldtk -Wl,-rpath -Wl,/usr/local/devtools/dtk/lib -ldl -lpthread -lc -lm -lGL -lGLU -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -ldgl -L/usr/local/devtools/OpenSceneGraph-2.2.0/lib/ -Wl,-rpath -Wl,/usr/local/devtools/OpenSceneGraph-2.2.0/lib/ -lOpenThreads -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -lProducer -lm -L/usr/local/devtools/dtk/lib -ldtk -Wl,-rpath -Wl,/usr/local/devtools/dtk/lib -ldl -lpthread -lc -lm -lGL -lGLU -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -ldgl -L/usr/local/devtools/OpenSceneGraph-2.2.0/lib/ -Wl,-rpath -Wl,/usr/local/devtools/OpenSceneGraph-2.2.0/lib/ -lOpenThreads -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -lProducer -lProducer

I guess this is what we need to change (in bold). Is there something to have with "dgl-config" which is in the helix example Makefile ? What do you suggest?

> printenv

LD_LIBRARY_PATH=:/usr/local/devtools/OpenSceneGraph-2.2.0/lib/:/usr/lib:/usr/local/Trolltech/Qt-4.3.2/include/QtCore/:/usr/local/lib:/usr/local/include/:/usr/local/Trolltech/Qt-4.3.2/include/:/usr/local/DIVERSE/install/lib

COINDIR=/usr/local/devtools/Coin-2.4.5

OSG_LIB_DIR=/usr/local/devtools/OpenSceneGraph-2.2.0/lib/

FLTK_DIR=/usr/local/devtools/fltk-1.1.7

DPF_INSTALL_DIR=/usr/local/devtools/dpf-2.4.6

PATH=/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/groupe2/bin:/usr/kerberos/sbin::/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/sbin:/usr/local/devtools/dtk/bin/:/usr/local/Trolltech/Qt-4.3.2/bin:/usr/lib/qt-3.3/bin:/usr/local/DIVERSE//install/bin:/usr/local/netbeans-6.0/bin:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/Producer/lib:/usr/local/devtools/Producer/include:/usr/local/devtools/Producer/lib:/usr/local/devtools/OpenThreads/include:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/OpenSceneGraph-2.2.0/bin:/usr/lib/qt4/include/QtCore/:/usr/local/include:/home/groupe2/bin:/usr/kerberos/sbin::/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/sbin:/usr/local/devtools/dtk/bin/:/usr/local/Trolltech/Qt-4.3.2/bin:/usr/lib/qt-3.3/bin:/usr/local/devtools/OpenSceneGraph-2.2.0/bin/:/usr/local/DIVERSE//install/bin:/usr/local/netbeans-6.0/bin:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/Producer/lib:/usr/local/devtools/Producer/include:/usr/local/devtools/Producer/lib:/usr/local/devtools/OpenThreads/include:/usr/local/devtools/OpenThreads/lib:/usr/lib/qt4/include/QtCore/:/usr/local/include:/home/groupe2/bin:/usr/kerberos/sbin::/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/sbin:/usr/local/devtools/dtk/bin/:/usr/local/Trolltech/Qt-4.3.2/bin:/usr/lib/qt-3.3/bin:/usr/local/devtools/OpenSceneGraph-2.2.0/bin/:/usr/local/DIVERSE/install/bin:/usr/local/netbeans-6.0/bin:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/Producer/lib:/usr/local/devtools/Producer/include:/usr/local/devtools/Producer/lib:/usr/local/devtools/OpenThreads/include:/usr/local/devtools/OpenThreads/lib:/usr/lib/qt4/include/QtCore/:/usr/local/include:/home/groupe2/bin:/usr/kerberos/sbin::/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/sbin:/usr/local/DIVERSE/install/bin:/usr/local/Trolltech/Qt-4.3.2/bin:/usr/lib/qt-3.3/bin:/usr/local/devtools/OpenSceneGraph-2.2.0/bin/:/usr/local/DIVERSE/install/bin:/usr/local/netbeans-6.0/bin:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/Producer/lib:/usr/local/devtools/Producer/include:/usr/local/devtools/Producer/lib:/usr/local/devtools/OpenThreads/include:/usr/local/devtools/OpenThreads/lib:/usr/lib/qt4/include/QtCore/:/usr/local/include:/root/bin:/usr/kerberos/sbin::/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/sbin:/usr/local/DIVERSE/install/bin:/usr/local/Trolltech/Qt-4.3.2/bin:/usr/lib/qt-3.3/bin:/usr/local/devtools/OpenSceneGraph-2.2.0/bin/:/usr/local/DIVERSE/install/bin:/usr/local/netbeans-6.0/bin:/usr/local/devtools/OpenThreads/lib:/usr/local/devtools/Producer/lib:/usr/local/devtools/Producer/include:/usr/local/devtools/Producer/lib:/usr/local/devtools/OpenThreads/include:/usr/local/devtools/OpenThreads/lib:/usr/lib/qt4/include/QtCore/:/usr/local/include

PRODUCER_LIB_DIR=/usr/local/devtools/Producer/lib

PWD=/usr/local/DIVERSE/source/dgl/examples/CCallbackHelix

DIVERSE=/usr/local/DIVERSE/

PRODUCER_INC_DIR=/usr/local/devtools/Producer/include

OPENTHREADS_INC_DIR=/usr/local/devtools/OpenThreads/include

====================================================

I think the problem is that your PATH is set to use the dtk in devtools.

Try this:

which dtk-config

You want to see:

/usr/local/DIVERSE/install/bin
/dtk-config

But you'll probably see:

/usr/local/devtools/dtk/bin/dtk-config

dtk-config is used to set many of the build options, so if you point to the
wrong one, problems ensue.

You also want to see why the PATH has this in it:

/usr/local/DIVERSE//install/bin

It might be OK, but might also casue PATH to look only in /install/bin.

On the plus side, I do see

/usr/local/DIVERSE/install/bin

in your PATH too, so if you take the /usr/local/devtools/dtk/bin out of your
PATH, or put /usr/local/diverse/install/bin at the front of your PATH, and
rebuild, your should be OK.

Here's what my PATH is set to:

> echo $PATH
/usr/local/HEV/savg/dgl/scripts:/usr/local/HEV/savg/dgl/bin:/usr/local/HEV/savg/vtk/bin:/usr/local/HEV/savg/itk/bin:/usr/local/HEV/savg/dtk/scripts:/usr/local/HEV/savg/dtk/bin:/usr/local/HEV/savg/scripts:/usr/local/HEV/savg/bin:/usr/local/HEV/apps/diverse/installed/bin:/usr/local/HEV/apps/osg/osg-2.x/installed/bin:/usr/local/HEV/apps/coin/Coin-2.5.0/installed/bin:/usr/local/HEV/apps/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/X11R6/bin:/sbin:/usr/sbin:/usr/X11R6/bin

The directory of note is /usr/local/HEV/apps/diverse/installed/bin

All the "savg" stuff is locally written software. That is followed by
locally installed packages like DIVERSE, OSG and so forth, and lastly by the
standard system directories like /usr/bin.

No comments: