What is happening here is that you are writing a console app, but you use features that depend on the lazarus LCL, not just the fpc rtl.
If you add LCL as a dependency the problem usually goes away.
Assuming you use Lazarus as editor, just add
uses interfaces, lclintf{add other units here};
This will add a dependency on LCL to the <project>.lpi file.
Note that
if you use an editor other than lazarus it is a bit more complex and requires you to add the paths to the lazarus package sources to fpc.cfg. Otherwise the same uses clause extention.
But that does not explain:
strings.pas(8,46) Error:Cannot find Forms used by Strings. Check if package LCLBase is in the dependencies.
Because strings does not depend on the LCL and does not need forms.
Or is one of your own units called "strings"?
The dos unit has a dependency on the rtl unit strings and should not give that error.
When I use a small project in fp.exe, which you may use as editor, I can not reproduce with this small program:
program testdos;
uses dos;{ this also parses strings, even if both are not used }
begin
end.
So it may be you have a completely wrong install or a duplicate fpc.cfg.