- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am in the process of integrating AMD's Brook+ into an Intel Visual Fortran application. Brook+ compiles a script file into C++ then the C++ compiler produces the code. When compiling alone everything works as expected.
The problem comes in when renaming what used to be main to name to be used for entry by IVF. e.g. was_main. The original code assumes the "standard" C runtime library is loaded.
IVF is not happy when loading LIBCMTD.LIB, it prefers use of MSVCRTD.LIB.
However MSVCRTD.LIB does not contain _iob, __argc and __argv
I can declare these with external "C" and initialize to 0 and link and run the application. i.e. My IVF application (mockup now) has access to the GPGPU as a computation accelerator.
I am not sure of the consequences in doing so. The application can get by without command line arguments but I am not sure what happens with _iob initialized to null (and being of size INT_PTR).
Any advice on this would be appreciated.
Jim Dempsey
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am not sure why you say "IVF .. prefers use of MSVCRTD.LIB", since that is not the default. Decide which set of libraries you're going to use and do so consistently. In VS, the choice for Fortran is made under Properties > Fortran > Libraries. In C++, it's under C++ > Code Generation.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page