If you use run-time compiling, you can run into a problem with undefined procedures. The answer is to refer to your procedures with name substitution.
Consider the situation where your program builds a file on the fly and compiles it. The file is named MyProg.PRG.
If you have a reference to MyProg() in code, the project will compile with an error complaining that MyProg does not exist. If you put in EXTERNAL PROC Myprog, the project then compiles with an error complaining that MyProg is undefined.
The answer is to not explicitly reference MyProg, but to assign it to a variable and refer to it that way, as in:
MyProcName = "MyProg()"
=EVAL(MyProcName)
This cures the compile-time blues.