View previous topic :: View next topic |
Author |
Message |
rcsaumarez
Joined: 23 Mar 2008 Posts: 9 Location: Cambridge UK
|
Posted: Tue Nov 11, 2014 4:30 pm Post subject: Probably spurious path information making FTN95 Linker fail. |
|
|
Hi,
I've been running FTN95 on widows 8.1 since it was released without problems (Using Plato as the IDE).
These are my details:
Version 5.50
Serial No: 007349
Name Dr Richard Saumarez
Yesterday, something (? what) happened and every time I tried to link a program, the linker crashed (Rather stupidly I didn't save a copy of the assembler output associated with the failure)
I uninstalled and reinstalled FTN95.
Now with any simple, one file main program that doesn't use any libraries and has no references specified, I get the following error:
Compiling and linking file: FreeFormat1.f95
error 51: - Unable to open library file C:\Users\rcsau_000\FEN_EP\Numerics\Inverse_problem\Stage4\szlib.lib
error 51: - Unable to open library file C:\Users\rcsau_000\FEN_EP\Numerics\Inverse_problem\stage3b\szlib.lib
szlib.lib is my private numerics library. I could rebuild the library, once I had reinstalled FTN95, using the previously installed Plato project. This did not help the problem.
The two references are to projects that I haven't used for several months and not the working directory of any of the programs I try to run.
I guess that there is some spurious path information in the linker options, but I can't work out where it would be. Can you help?
Yours
Richard Saumarez |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7930 Location: Salford, UK
|
Posted: Tue Nov 11, 2014 7:47 pm Post subject: |
|
|
If you are using a Plato "project" then look at the project ini file. This is a text file that you can open and edit.
Now look for the lib that you don't want and remove it.
Alternatively you should be able to do this from the "Project Explorer" window when running Plato.
If you are not using a Plato "project" then find the Plato.ini (C:\Users\xxxx\AppData\Roaming\SilverFrost\FTN95\Plato.ini) and look inside it for the problem lib path. |
|
Back to top |
|
|
rcsaumarez
Joined: 23 Mar 2008 Posts: 9 Location: Cambridge UK
|
Posted: Sat Nov 22, 2014 12:27 pm Post subject: |
|
|
I'm having a really bad IT week.
I've fixed the path problem however now when I run and compile a program, once the program has finished all the program listings disappear from the Plateo IDE. I have to close and restart Plato to get them back.
The only thing that has changed is that I signed in to my Microsoft account which has changed my path name and therefore I have to change the path names in every program I've written. |
|
Back to top |
|
|
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2388 Location: Yateley, Hants, UK
|
Posted: Sat Nov 22, 2014 4:19 pm Post subject: |
|
|
Richard,
Having fixed path names is sometimes a mistake. There are several solutions that can help. One is to make the paths for such things as help files and settings relative to the location of the executable. I find this using GET_PROGRAM_NAME@, which gets the program name and path, then I cut off the program name and extension from the end, and add the sub-paths.
You could also give the files rather unusual names, and search for them using FIND_FILE@. A good time to do this is on start-up as the delay is less noticeable there.
Another alternative is to put all the relevant paths in an INI file. This is an old-fashioned way to do it (although I do it). I have an extra entry in my Files menu where I can reset the paths, and to save a lot of typing I make use of BROWSE_FOR_FOLDER@ to choose them.
Really, one ought to store these paths in the registry. You can most easily access the registry by using an installer program (Like Jordan Russell Software's Innosetup). However, to access the registry you need to use functions that aren't a normal part of FTN95. Some have been uploaded to this forum.
Of course, all this blows up in your face if the directory structure is altered! The whole point is that if the paths are stored in the source code, you need to recompile and relink, but if they are stored in a file or the registry you only need to use Notepad or Regedit ...
Eddie
PS there have been bucketloads of improvements since 5.50 |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7930 Location: Salford, UK
|
Posted: Sat Nov 22, 2014 6:36 pm Post subject: |
|
|
One thing that might help...
Plato has an option to "Use relative path for project files". This means that all paths are relative to the path for the project.
You will find this option on the Tools menu under Options, then Environment, then General. |
|
Back to top |
|
|
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2388 Location: Yateley, Hants, UK
|
Posted: Sun Nov 23, 2014 12:00 am Post subject: |
|
|
Ah - I misunderstood, and launched into a solution to a different problem! My comments above are about file references from inside your program, and not from Plato about a project.
Sorry.
Eddie |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1887
|
Posted: Sun Nov 23, 2014 5:34 pm Post subject: |
|
|
Don't worry, you have lots of company.
Quote: | For every complex problem there is an answer that is clear, simple, and wrong. -- H. L. Mencken |
|
|
Back to top |
|
|
rcsaumarez
Joined: 23 Mar 2008 Posts: 9 Location: Cambridge UK
|
Posted: Mon Nov 24, 2014 3:28 pm Post subject: |
|
|
Thanks for your replies.
The most obvious problem after fixing the library path problem, or at least I thought I had fixed it, was that every time I ran a program under Plato, the listings in the source files (open or not) simply disappeared.
When I tried to uninstall FTN95, the uninstaller wouldn't complete and uninstall FTN95.
I ran the Norton virus checker with the extreme checking option and it showed that the windows installer and several of the ftn95 applications were infected by a Trojan.
After repair, I could uninstall FTN95 and then reinstalled it from a CD backup. The problem of the library paths and the souce code vanishing now appears to be fixed.
However, although the "integrate with SDBG" option is activated, the SDGB is not automatically invoked when a program is debugged using Plato and has to be incoked manually. When this is done, breakpoints set in the source code do not function (although they are specified in the .ini file)
In summary, Plato and FTN95 are now usable, but still not functioning quite as they should. I have done another virus check, which is negative, but I am not sure if something has been corrupted that has survived re-installation.
Any suggestions? |
|
Back to top |
|
|
|