Recent

Author Topic: Error: Undefined symbol: .Lj3850  (Read 431 times)

d2010

  • New Member
  • *
  • Posts: 16
Error: Undefined symbol: .Lj3850
« on: June 09, 2022, 10:40:18 am »
Hello
I import  my project .. after Delphi3 and Bds7.0
How I fix thsi error?
My OperatingIOs=Win7 x64 and LAzarus2.2
« Last Edit: June 09, 2022, 10:46:46 am by d2010 »

440bx

  • Hero Member
  • *****
  • Posts: 3163
Re: Error: Undefined symbol: .Lj3850
« Reply #1 on: June 09, 2022, 11:04:41 am »
I import  my project .. after Delphi3 and Bds7.0
Somewhere in your _original_ project (Delphi3/Bds7.0), there is an identifier by the name of Lj3850 that didn't make it into the port.

Determine where in the original project the identifier Lj3850 is defined and the files in which it is used and ensure that those files (particularly the one where it is defined) are part of the port.

HTH.
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 SP1 64bit.

korba812

  • Sr. Member
  • ****
  • Posts: 309
Re: Error: Undefined symbol: .Lj3850
« Reply #2 on: June 09, 2022, 12:08:42 pm »
.Lj3850 sounds like a compiler generated label in the resulting assembler code. It may be the compiler's fault. Try to compile your project with code optimization turned off (-O- command line parameter).

d2010

  • New Member
  • *
  • Posts: 16
Re: Error: Undefined symbol: .Lj3850
« Reply #3 on: June 14, 2022, 12:29:20 pm »
.Lj3850 sounds like a compiler generated label in the resulting assembler code. It may be the compiler's fault. Try to compile your project with code optimization turned off (-O- command line parameter).
This  solution is good?
Code: [Select]
1) search Lj3890 inside *.o. My result is adm_ceval.o
2) I rename one variabile name onto Lj3894
3) Lazarus->Compiler>Cleanup and Build (again)
« Last Edit: June 14, 2022, 12:50:54 pm by d2010 »

PascalDragon

  • Hero Member
  • *****
  • Posts: 4765
  • Compiler Developer
Re: Error: Undefined symbol: .Lj3850
« Reply #4 on: June 14, 2022, 01:31:18 pm »
.Lj3850 sounds like a compiler generated label in the resulting assembler code. It may be the compiler's fault. Try to compile your project with code optimization turned off (-O- command line parameter).
This  solution is good?
Code: [Select]
1) search Lj3890 inside *.o. My result is adm_ceval.o
2) I rename one variabile name onto Lj3894
3) Lazarus->Compiler>Cleanup and Build (again)

No. If the compiler (or more precisely linker) tells you that such a symbol is missing this more often than not points to a bug of the compiler which most of the time occurs in context of optimizations. So as korba812 said, disable optimizations and try again (if that works, then it's some optimization bug). You can also check whether the development version of FPC shows this behaviour as well. If it's indeed a bug then it would be great if you'd reduce your code to only the buggy part and report a bug here.

 

TinyPortal © 2005-2018