Kbase 16089: How Application Compiler saves compiled .r code.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
How Application Compiler saves compiled .r code.
By default, the Application Compiler saves r-code files in the
directory that contains the source files.
The situation is more complex if you choose to save the r-code into a
different directory than the source. (This choice is available under
Options --> Compiler... and then write a path into the Save Into:
fill-in box.)
If any part of your source file directory structure is in your
PROPATH, the compiler will attempt to save the r-code into a directory
structure composed in the following manner:
1) First it will take the directory specified in the Save Into box
as a starting point.
2) It will then take a look at your source directory. If part of
the source directory structure is in the PROPATH, it will strip those
directories from the structure. It will then append whatever
directories remain on to the end of the structure specified in the
Save Into box. (The reason it does this is to allow the Application
Compiler to generate XREF files with PROPATH relative file names.)
For example:
Source to be compiled is in c:\Devel\Sub1\Source
Compiled code is specified to be saved into c:\Deploy\Compiled
Propath = .,c:\Devel,c:\dlc,c:\dlc\gui, etc.
The compiler will try to save the r-code into:
c:\Deploy\Compiled\Sub1\Source
Since this file structure does not exist, you will get an error
message saying: Unable to create r-code file "c:\Deploy\Compiled\Sub1Source\<filename.r>" (477)
One workaround is to remove from the PROPATH the directories that are
part of the source code path. (In the above example, you would remove
c:\Devel from the PROPATH).
Another workaround is to specify the full path and filename of every
file you want compiled in the Application Compiler's list of files to
compile. You could not simply check off the Look in Subdirectories
check-box and list the parent directory. (In the above example, you
would spell out c:\Devel\Sub1\Source\<filename.p> for each file you
wanted to compile).
More explanation on why it works this way:
The Application Compiler can either compile files relative to the
PROPATH or it must compile them using full pathnames. PROPATH
relative pathnames were chosen because this allows the Application
Compiler to generate XREF files with PROPATH relative file names.
Full pathnames in the XREF output file would be useless to anyone
attempting to use the XREF output file to construct where-used
cross-reference databases, which many customers do.
Progress Software Technical Support Note # 16089