[Lazarus] Library dependency problem. Help please!
Donald Ziesig
donald at ziesig.org
Thu Feb 11 18:14:16 CET 2016
Hi All!
I am having a strange library dependency problem. It started yesterday
afternoon in a set of code very far from where I was working at the
time. I have tried everything I can think of (including creating a new
dummy project, and rebuilding and renaming both libraries, one file at
a time).
The problem appears to be associated with a generic type definition.
When I remove the specialization for that generic and comment out the
dependent code, the problem goes away (of course the program no longer
works, but at least it compiles).
I have two packages: AppLibrary which contains application-specific
units that will be used in several related projects, and; CommonLibrary
which contains general-purpose units that I have used for years (some go
back to Delphi 2). AppLibrary requires CommonLibrary. The generic
type definition is in the common library, the specialization is in the
app library.
CommonLibrary compiles successfully. AppLibrary (original version and
all copies I have made for debugging this issue) fails to compile if it
has a particular specialize clause in the interfaces section of any of
its units (most of which have been working for the past month). I have
tried all of the units one at a time and any one with this specialize
clause included fails compilation the exact same way:
During compilation a dialog box appears with the caption "File Not
Found". The directory it is looking for is the original path from the
original app from yesterday. The path is associated with the AppLibrary
and the persistslist2.pas file is in the directory associated with the
CommonLibrary.
/home/pi/Module14Code/Common/persistslist2.pas
The path exists but the file does not (the file is in the appropriate
directory for the library).
I tried creating a totally new project and as I said above, new
libraries in a new directory tree. When I try to compile the AppLibrary
I still get the error with the old path. I tried renaming the
persistslist2 unit to persitslist3 (which only exists in the test
version of the CommonLibrary). The same error occurs but now it wants
the old path with the new file:
/home/pi/Module14Code/Common/persistslist3.pas
I have tried greping for the path and it only appears in files
associated with the pre-problem application. Is it possible that
something associated with the compiler's configuration file(s) is
remembering the old stuff? This error has persisted through multiple
reboots.
I am using Raspbian Jessie with Lazarus 1.7 (no changes here since early
January). It worked properly using Lazarus 1.4.2 before then. I have
rebuilt Lazarus in an attempt to fix the problem, but it made no
noticable change.
One thing that would be useful is if the "File Not Found" dialog would
reference the offending file and perhaps the source of the text of the
path. I wasted a lot of time removing units from AppLibrary
one-at-a-time before I could identify the failing ones.
Any help will be greatly appreciated.
Thanks,
Don Ziesig
More information about the Lazarus
mailing list