- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear IVF for windows users,
Recently I am having a rebuild problem. I am using MSVS 2010 and Intel parallel studio with all updates patched.
I have a solution with 15 projects, half c half FORTRAN. There is one FORTRAN exe project (Let's name it F1), 14 libraries. When I edited any single file in F1 and then rebuilt, all the sources are rebuilt. If I right click on the file that I edit in F1, compile and link only, the IDE tells me that cannot find other object files. When I do something to F1, the IDE just clean everything first before anything else. Compilation of each single file is just fine.
Is there anything I can do to track why IDE runs clean each time unconditionally?
PS: It works OK in all other of my project but the one I mentioned above.
Thanks.
Link Copied
- « Previous
-
- 1
- 2
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I see that preprocessing (/fpp) is used in project. Do you have in the code (in sources which are always rebuilt) something like:
[fortran]#if defined SOME_VAR
#include "some_include"
#endif[/fortran]
? Fortran dependency scanner cannot work with conditional preprocessor directives and always set reference from "some_include" file for such sources even if SOME_VAR is not defined. If "some_include" is not found then source is always rebuilt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Vadim,
Thanks for the replay, there are conditional preprocessor directives in the program, but not conditional includes. e.g.
[fortran]
#if defined(SINGLE_PRECISION)
# define REAL_PRECISION 4
# define FLOAT real(4)
#else
# define REAL_PRECISION 8
# define FLOAT real(8)
#endif
[/fortran]
Does these conditional thing matters to the build like you mentioned? Since in each file, all the real/double precision are declared as "FLOAT", in order to allow a single precision build and a double precision build.
Sorry for the late reply.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The company I work for have had the same problem as this topic has described.
I haven't managed to find a solution online but I have come closer to locating the problem and found a workaround.
The exact problem:
I am testing on Visual Studio 2013 width the latest fortran composer installed. Our project is a mix of fortran, c and c++. The Fortran part is quite large 867 modules and it takes some time to rebuild and even build.
In the first version of Fortran Composer XE 2013 both the "Link only" and "Build" commands deleted all existing obj and pdb files before starting. In the latest version of the Fortran Composer XE 2013 only the "Link only" command clears all obj and pdb files. This is still a big problem because a "Build" often take a long time and is often not nessesary.
The workaround:
I found that if I changed the output location of the obj and pdb files from the "Intermediate Directory" the files was no longer deleted and "Link only" worked again.
For my company this is a not so nice workaround because our Visual Studio 2013 project is generated by CMake and it is not possible to change the object out location via CMake.
Good solution:
A good solution for us could therefore be one of two:
- Convince CMake that the Output location of obj and pdb files should be changeble from the CMakeLists.txt file
- Help Intel to locate and fix the bug that deletes obj and pdb files the the "Intermediate Directory" when running "Link only" in visual studio.
Notes:
The bug is also pressent when using the Fortran Composer XE 2013 with Visual Studio 2008, but it works for the older fortran 11 compilers with Visual Studio 2008.
The location of the settings mentioned above in Visual Studio 2013.
- General->Intermediate Director
- Fortran->Output Files->Object File Name
- Fortran->Output Files->Program Database File Name

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
-
- 1
- 2
- Next »