LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Undefined symbol

I have one programs written in LabWindows 2.3a, that I have translate to C
in order to be read by LabWindow CVI 7.0 (I have the evaluation version).

When I try to debug the program, I get the following errors messages:
Undefined symbol '_round' referenced in "ACXLN.C".
Undefined symbol '_LoadPanel' referenced in "ACXLN.C".
Undefined symbol '_StringLength' referenced in "ACXLN.C".
Undefined symbol '_ReadLine' referenced in "ACXLN.C".
Undefined symbol '_RefreshListCtrl' referenced in "ACXLN.C".
Undefined symbol '_DefaultCtrl' referenced in "ACXLN.C".
Undefined symbol '_UnloadPanel' referenced in "ACXLN.C".
Undefined symbol '_LinEv1D' referenced in "ACXLN.C".
Undefined symbol '_CloseInterfaceManager' referenced in "ACXLN.C".
Undefined symbol '_FileSelectPopup' referenced in "ACXLN.C".
Undefined symbol '_DisplayPanel' referenced in "ACXLN.C".
Undefined symbol '_ToPolar1D' referenced in "ACXLN.C".
Undefined symbol '_GetCtrlVal' referenced in "ACXLN.C".
Undefined symbol '_FFT' referenced in "ACXLN.C".
Undefined symbol '_MaxMin1D' referenced in "ACXLN.C".
Undefined symbol '_SpInterp' referenced in "ACXLN.C".
Undefined symbol '_DeletePlots' referenced in "ACXLN.C".
Undefined symbol '_OpenFile' referenced in "ACXLN.C".
Undefined symbol '_PlotY' referenced in "ACXLN.C".
Undefined symbol '_PlotXY' referenced in "ACXLN.C".
Undefined symbol '_InstallPopup' referenced in "ACXLN.C".
Undefined symbol '_CloseFile' referenced in "ACXLN.C".
Undefined symbol '_CopyBytes' referenced in "ACXLN.C".
Undefined symbol '_CopyString' referenced in "ACXLN.C".
Undefined symbol '_GetPopupEvent' referenced in "ACXLN.C".
Undefined symbol '_Bw_LPF' referenced in "ACXLN.C".
Undefined symbol '_Ramp' referenced in "ACXLN.C".
Undefined symbol '_RemovePopup' referenced in "ACXLN.C".
Undefined symbol '_SineWave' referenced in "ACXLN.C".
Undefined symbol '_GetUserEvent' referenced in "ACXLN.C".
Undefined symbol '_WhiteNoise' referenced in "ACXLN.C".

It seems that it does not recognize the functions I use in the program.
What can I do?

Thanks.

Marta Arg�
0 Kudos
Message 1 of 5
(5,684 Views)
I don't recognize all of your functions, but it looks like you're missing some .h files or you need to rebuild your project.
Try adding the following
#include
#include
#include
Then rebuild the project.
Some of the functions (like GetPopupEvent) may not be available in CVI 7.0. round() could be ceil() or floor().
2.3 was a long time ago!
0 Kudos
Message 2 of 5
(5,684 Views)
Are you translating everything manually? Have you looked at using the Translate DOS LW Program utility? In CVI 6.0, open a code window for the file you want to translate, then select Translate DOS LW Program from the Options menu. I don't know if it's available in the trial version of 7.0.
0 Kudos
Message 3 of 5
(5,684 Views)
Thanks for your help, Al S!
The problem was that I had translated the program with an utility of the 2.3
version (it translates from BASIC to C), but I realised that the CVI 7.0
uses ANSY_C, and I had to translate it again with Translate DOS LW Program
utility.
But it still has some errors. Somewhere in the program I have the following
code:

void ProcessPopup1 (av, ai, fa, sh, indu)
double *av;
double *ai;
double *fa;
double *sh;
double *indu;

And I get the following errors about these lines:

417, 1 Illegal statement termination.
417, 23 Type error in argument 1 to `ProcessPopup1'; found 'double'
expected 'pointer to double'.
417, 27 Type error in argument 2 to `ProcessPopup1'; found 'double'
expected 'pointer to double'.
417, 3
1 Type error in argument 3 to `ProcessPopup1'; found 'double'
expected 'pointer to double'.
417, 35 Type error in argument 4 to `ProcessPopup1'; found 'double'
expected 'pointer to double'.
417, 41 Type error in argument 5 to `ProcessPopup1'; found 'double'
expected 'pointer to double'.
418, 1 syntax error; found 'double' expecting ';'.
418, 1 Illegal statement termination.
418, 11 Type error: pointer expected.
419, 1 Illegal statement termination.
419, 11 Type error: pointer expected.
420, 1 Illegal statement termination.
420, 11 Type error: pointer expected.
421, 1 Illegal statement termination.
421, 11 Type error: pointer expected.
422, 1 Illegal statement termination.
422, 13 Type error: pointer expected.

Can anybody help with this?

Thanks in advance.
0 Kudos
Message 4 of 5
(5,684 Views)
Is the following line line number 417?
void ProcessPopup1 (av, ai, fa, sh, indu)

Is the line supposed to be the function prototype or the function definition?
If it's the prototype, it needs a semi-colon at the end. Because of the first error listed for line 417 and the first error for line 418, it looks like CVI thinks line 417 is the prototype so it wants it to end in a semi-colon.
If line 417 is the start of the function definition, do you have a set of braces following the argument declarations (double *av; etc.)?
Have you looked at any other references to ProcessPopup1? The "Type error in argument" errors typically indicate that there's a mismatch with another reference.
If you want us to take a closer loop, please post a bigger se
ction of your code or even the whole file.
P.S. Declaring the function arguments on separate lines after the function declaration is an older style. It still works, but most ANSI C code today uses one line to declare the function and its arguments.
For example, instead of the following:
void ProcessPopup1 (av, ai, fa, sh, indu)
double *av;
double *ai;
double *fa;
double *sh;
double *indu;
you can use this:
void ProcessPopup1 (double *av, double *ai, double *fa, double *sh, double *indu)
0 Kudos
Message 5 of 5
(5,684 Views)