Resources

why a Undefined symbols error appeared after the .src file is put into the default path

0

I’m trying to run a tested DSGE computation file .the file include a main file named SolveLQA.src and a example file Ramsey4c.g.Before running the file I put the .src into my default src path,and establish a new library file named dge.lcg in the default lcg path(actually it’s provided by the author.The friction regarding the calling of the SolveLQA proc is as follow

/* Compute policy function using default values */
{pf,prec}=SolveLQA(&g,beta*a^(1-eta),ybar,Amat,Bmat);

prec;

 

But when I begin to run the example file Ramsey4c.g,the following error message is given

Undefined symbols:
SolveLQA

How this happen?After all, the SolveLQA.src is my main file and it’s definitely put into the default path.

 

My Gauss version is Gauss 10

 

Tags: asked December 21, 2013

4 Answers

0

There are a couple of reasons why this may not be found.

  1. The library is not loaded
  2. The library contains the full path to the file that is based upon another user’s (the author, probably) machine.

To diagnose this, the first thing I would do is enter the following at the GAUSS command prompt:

library dge;

If you get the error:

error G0290: Library not found

Then your library is not set up correctly. If this command is run without error, then enter:

SolveLQA

After this command, you will get the error:

Undefined symbols

or you will get an error of:

error G0105 : Bad expression or missing arguments

or

error G0159 : Wrong number of parameters

If you get the Undefined symbols error, this means that GAUSS cannot find the procedure. Open the file dge.lcg in your GAUSSHOME/lib directory and look to see if there is a reference to the procedure SolveLQA and that it is specified to be in the file SolveLQA.src.

If you get one of the latter two errors, GAUSS did find the procedure and you just need to add the statement:

library dge;

to the top of your example file.

aptech
342
0

thankyou for your answer , I check the dge.lcg file and found the following statesment

D:\GAUSS\SRC\SolveLQA.SRC

GetQ :proc
CDJac :proc
CDHesse :proc
ConTest :proc

D:\GAUSS\SRC\SolveLA.SRC

SchurO :proc
InterChange :proc
Givens :proc
L2Norm :proc

Isn’t it a correct reference?if not , what I can do?thanks

0

“If you get the Undefined symbols error, this means that GAUSS cannot find the procedure~~~”

I suppose my problem is due to this , what can I do?

 

0

If the files, SolveLQA.SRC and SolveLA.SRC, are in D:\GAUSS\SRC, the this is correct. Take a look to see if those files exist in that directory. You can check to see if GAUSS is reading this library file correctly, by trying one of the other procedures as we did in the first example…something like:

library dge;
ConTest;

This will tell you if the library is set up correctly and working. However, it will not resolve your problem entirely, because your original complaint was about an undefined symbol named SolveLQA.

From what you have shown, the library file does not contain a procedure named SolveLQA. Therefore even if the library is set up and being read correctly, it will not define a symbol that is not listed in the library.

aptech
342