Instantiation of TMultiLayrPerceptron object breaks *.so lib


I am using root 3.10-02 with gcc 2.95.3. I want to use the TMultiLayerPerceptron class in my code. If simply add:

#include “TMultiLayerPerceptron.h”

my code compiles and links. When I load the resulting *.so library in root it loads normally.

Next I tried adding the line (my code already declares all variables passed to this constructor):

TMultiLayerPerceptron Mlp(“mass,sig2,sfl3,doca:8:Type”,simu,“Entry$%2”,“Entry$/2”);
TMultiLayerPerceptron *mlp = &Mlp;

to a function. Again I compile and link my code just fine. However now when I try to load the *.so library into root I get:

[noric12] /u/br/markhod/TauCPAnalysis > root -b

  •                                     *
  •    W E L C O M E  to  R O O T       *
  •                                     *
  • Version 3.10/02 25 December 2003 *
  •                                     *
  • You are welcome to visit our Web site *
  •      [](            *
  •                                     *

Compiled for linux with thread support.

CINT/ROOT C/C++ Interpreter version 5.15.115, Dec 9 2003
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
dlopen error: /u/br/markhod/TauCPAnalysis/tmp/ undefined symbol: __21TMultiLayerPerceptronPCcP5TTreeT1T1
Load Error: Failed to load Dynamic link library /u/br/markhod/TauCPAnalysis/tmp/
*** Interpreter error recovered ***
root [0]

As a sanity check:

[noric12] /u/br/markhod/TauCPAnalysis > echo $LD_LIBRARY_PATH

[noric12] /u/br/markhod/TauCPAnalysis > echo $ROOTSYS

[noric12] /u/br/markhod/TauCPAnalysis > echo $PATH

Other root classes can be used in my code without a problem.

Can anyone give me an idea of the cause of the problem I am having? Or any ideas I can look into to try to diagnose the problem.

I dont understand why it compiles without complaint but cant be run.



Before executing your script, you must load the library with TMultiLayerPerceptron