- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I've installed Intel Visual Fortran Pro and am working on a visual studio project that has some C++ code that calls a few functions from fortran libraries.
When I build the project initially it looks for LIBC.lib, which it can't open. I've found the files on an old Powerstation 4.0 disc. So after installing the software on my computer, and point to the directory with the necessary libraries in it, i receive the second set of errors. (both sets of errors are pasted below)
Is there some way to set a default library to override other libraries in case functions are multiply defined?
Thanks,
Kevin
====================1st SET OF ERRORS===================
1>------ Build started: Project: adsa1, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'LIBC.lib'
1>Build log was saved at "file://j:\My Documents\B02 - 20081227\UH Work - Zuo\AdsaInterf 3.0 source\Debug\BuildLog.htm"
1>adsa1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
*************************************************************************
====================2nd SET OF ERRORS===================
1>------ Build started: Project: adsa1, Configuration: Debug Win32 ------
1>Linking...
1>libf.lib(matherr.obj) : error LNK2005: __matherr already defined in libcmtd.lib(_matherr_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: _atan already defined in libcmtd.lib(_atan_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: _atan2 already defined in libcmtd.lib(_87ctriga_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: __CIatan already defined in libcmtd.lib(_atan_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: __CIatan2 already defined in libcmtd.lib(_87ctriga_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: _pow already defined in libcmtd.lib(_pow_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: _exp already defined in libcmtd.lib(_87ctran_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: __CIpow already defined in libcmtd.lib(_pow_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: __CIexp already defined in libcmtd.lib(_87ctran_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: _sin already defined in libcmtd.lib(_sin_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: _cos already defined in libcmtd.lib(_cos_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: __CIsin already defined in libcmtd.lib(_sin_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: __CIcos already defined in libcmtd.lib(_cos_.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __FF_MSGBANNER already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __NMSG_WRITE already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __GET_RTERRMSG already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __environ already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___argv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___argc already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(stricmp.obj) : error LNK2005: __stricmp already defined in libcmtd.lib(stricmp.obj)
1>libc.lib(cfout.obj) : error LNK2005: ___dtold already defined in libcmtd.lib(_cfout_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __rtpiby2 already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __fFATN2 already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __OP_ATAN2jmptab already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfnpop already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfnpopse already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __minfinity already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __infinity already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __fFLN already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfpop already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __OP_EXPjmptab already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __logemax already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __ffexpm1 already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfpopse already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __fFEXP already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtindfpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtonenpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttosnpopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtindfnpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtonepop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtzeronpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtchsifneg already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __nan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttospopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __indefinite already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttosnpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtzeropop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtnospopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __tosnan1 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtnospop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttospop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __nosnan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __tosnan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __piby2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __trandisp1 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __trandisp2 already defined in libcmtd.lib(_87disp_.obj)
1>LINK : warning LNK4098: defaultlib 'libc.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>.\Debug/adsa1.exe : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://j:\My Documents\B02 - 20081227\UH Work - Zuo\AdsaInterf 3.0 source\Debug\BuildLog.htm"
1>adsa1 - 71 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
I've installed Intel Visual Fortran Pro and am working on a visual studio project that has some C++ code that calls a few functions from fortran libraries.
When I build the project initially it looks for LIBC.lib, which it can't open. I've found the files on an old Powerstation 4.0 disc. So after installing the software on my computer, and point to the directory with the necessary libraries in it, i receive the second set of errors. (both sets of errors are pasted below)
Is there some way to set a default library to override other libraries in case functions are multiply defined?
Thanks,
Kevin
====================1st SET OF ERRORS===================
1>------ Build started: Project: adsa1, Configuration: Debug Win32 ------
1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'LIBC.lib'
1>Build log was saved at "file://j:\My Documents\B02 - 20081227\UH Work - Zuo\AdsaInterf 3.0 source\Debug\BuildLog.htm"
1>adsa1 - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
*************************************************************************
====================2nd SET OF ERRORS===================
1>------ Build started: Project: adsa1, Configuration: Debug Win32 ------
1>Linking...
1>libf.lib(matherr.obj) : error LNK2005: __matherr already defined in libcmtd.lib(_matherr_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: _atan already defined in libcmtd.lib(_atan_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: _atan2 already defined in libcmtd.lib(_87ctriga_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: __CIatan already defined in libcmtd.lib(_atan_.obj)
1>libc.lib(87ctriga.obj) : error LNK2005: __CIatan2 already defined in libcmtd.lib(_87ctriga_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: _pow already defined in libcmtd.lib(_pow_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: _exp already defined in libcmtd.lib(_87ctran_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: __CIpow already defined in libcmtd.lib(_pow_.obj)
1>libc.lib(87ctran.obj) : error LNK2005: __CIexp already defined in libcmtd.lib(_87ctran_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: _sin already defined in libcmtd.lib(_sin_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: _cos already defined in libcmtd.lib(_cos_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: __CIsin already defined in libcmtd.lib(_sin_.obj)
1>libc.lib(87ctrig.obj) : error LNK2005: __CIcos already defined in libcmtd.lib(_cos_.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __FF_MSGBANNER already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __NMSG_WRITE already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0msg.obj) : error LNK2005: __GET_RTERRMSG already defined in libcmtd.lib(crt0msg.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __environ already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___argv already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: ___argc already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in libcmtd.lib(crt0dat.obj)
1>libc.lib(stricmp.obj) : error LNK2005: __stricmp already defined in libcmtd.lib(stricmp.obj)
1>libc.lib(cfout.obj) : error LNK2005: ___dtold already defined in libcmtd.lib(_cfout_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __rtpiby2 already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __fFATN2 already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87triga.obj) : error LNK2005: __OP_ATAN2jmptab already defined in libcmtd.lib(_87triga_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfnpop already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfnpopse already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __minfinity already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __infinity already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __fFLN already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfpop already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __OP_EXPjmptab already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __logemax already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __ffexpm1 already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __rtinfpopse already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87tran.obj) : error LNK2005: __fFEXP already defined in libcmtd.lib(_87tran_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtindfpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtonenpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttosnpopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtindfnpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtonepop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtzeronpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtchsifneg already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __nan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttospopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __indefinite already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttosnpop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtzeropop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtnospopde already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __tosnan1 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rtnospop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __rttospop already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __nosnan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __tosnan2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __piby2 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __trandisp1 already defined in libcmtd.lib(_87disp_.obj)
1>libc.lib(87disp.obj) : error LNK2005: __trandisp2 already defined in libcmtd.lib(_87disp_.obj)
1>LINK : warning LNK4098: defaultlib 'libc.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
1>.\Debug/adsa1.exe : fatal error LNK1169: one or more multiply defined symbols found
1>Build log was saved at "file://j:\My Documents\B02 - 20081227\UH Work - Zuo\AdsaInterf 3.0 source\Debug\BuildLog.htm"
1>adsa1 - 71 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On Windows, compilers usually add a set of "directives" to the object file which tells the linker to pull in certain libraries. This is done so that you don't have to manually list the libraries.
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
Link Copied
17 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Microsoft discontinued libc.lib in VS2005. If it's C++ code, you're going to have to find a version of this library that is built multithreaded unless you still have VS2003. You can try adding libc.lib as a library to ignore in the linker properties, but you may still get errors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
Microsoft discontinued libc.lib in VS2005. If it's C++ code, you're going to have to find a version of this library that is built multithreaded unless you still have VS2003. You can try adding libc.lib as a library to ignore in the linker properties, but you may still get errors.
libc.lib
console.lib
libf.lib
portlib.lib
are these all fortran libraries?
Why is the C++ code looking for these outdated libraries? is there a way to point them to the current/updated ones?
Thanks!
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
On Windows, compilers usually add a set of "directives" to the object file which tells the linker to pull in certain libraries. This is done so that you don't have to manually list the libraries.
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
On Windows, compilers usually add a set of "directives" to the object file which tells the linker to pull in certain libraries. This is done so that you don't have to manually list the libraries.
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
The library you are using would appear to have been built by or at least for Microsoft Fortran PowerStation, as some of the libraries you list are for that product. You cannot mix these objects with Intel Fortran. libc.lib is a Microsoft Visual C++ library that is not thread-safe. It was discontinued as of VS2005. While many of the symbols in libc.lib can be fulfilled by libcmt.lib (the thread-safe variant), the C/C++ compiler actually generates different code if you're using the thread-safe version (/MT is the switch), so you'll get link errors regardless.
In the end, you cannot use this library with Intel Fortran - it requires Microsoft Fortran PowerStation (taken off the market 12 years ago).
Thanks for the explanation steve.
Is there a way in VS2008 to default so that libcmtd.lib's definitions take precedence and all other library's function/variable definitions are ignored (if they happen to be duplicates)?
Thanks
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, there's the /force:multiple option, but I don't recommend it. You can use the "ignore library" option to tell the linker not to look for libc.lib, but you may still get errors.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
Yes, there's the /force:multiple option, but I don't recommend it. You can use the "ignore library" option to tell the linker not to look for libc.lib, but you may still get errors.
Ah,
Well I don't want to really exclude/ignore the entire library. Just the functions/variables that are defined elsewhere. Does the /force:multiple option do this?
Thx for all the help Steve!
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - proud2bhaole
Ah,
Well I don't want to really exclude/ignore the entire library. Just the functions/variables that are defined elsewhere. Does the /force:multiple option do this?
Thx for all the help Steve!
Kevin
Hi
I tried the /force:multiple option and it did what it was supposed to, ignoring one of the redundant definitions.
It did, however result in the following error and the .exe generated did not run/open:
.Debug/adsa1.exe : warning LNK4088: image being generated due to /FORCE option; image may not run
What does this mean?
Would a dynamic linking to the MFC and C runtime libraries solve my problem? It was suggested to me but i'm not quite sure how to do it in vs2008.
Thanks!
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The message is saying pretty much what I did - you may get run-time errors. Or you may not...
No, dynamic linking won't help because the C++ objects you have require static linking.
No, dynamic linking won't help because the C++ objects you have require static linking.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
The message is saying pretty much what I did - you may get run-time errors. Or you may not...
No, dynamic linking won't help because the C++ objects you have require static linking.
No, dynamic linking won't help because the C++ objects you have require static linking.
So i guess there's not much i can do?
other than finding the actual source code for the libraries?
Thx
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That would be my take on it - either that or get an updated copy of the library from whoever wrote it, built for use with Intel Fortran.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - proud2bhaole
So i guess there's not much i can do?
other than finding the actual source code for the libraries?
Thx
Kevin
Hi Steve
Please forgive my ignorance, but how can you tell that the C++ objects require static linking? Sorry, I'm pretty new to this.
Thanks,
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - proud2bhaole
Hi Steve
Please forgive my ignorance, but how can you tell that the C++ objects require static linking? Sorry, I'm pretty new to this.
Thanks,
Kevin
Would it be possible to compile the libraries in question in PowerStation 4.0 (which I believe they were created in) as a dynamic linked library? and then add that new DLL to the VS2008 project.
Would that work? I've tried it and had an error in PS 4.0, but before I debug the error I'm wondering if it will even work...
Thanks!
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - proud2bhaole
Would it be possible to compile the libraries in question in PowerStation 4.0 (which I believe they were created in) as a dynamic linked library? and then add that new DLL to the VS2008 project.
Would that work? I've tried it and had an error in PS 4.0, but before I debug the error I'm wondering if it will even work...
Thanks!
Kevin
Kevin,
If you have the sources to build the library in PS, why not do it using Intel?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - David White
Kevin,
If you have the sources to build the library in PS, why not do it using Intel?
Hi Dave
Actually I only have the .lib files.
I tried to build a .dll using Intel VF, but VS2008 said I had a corrupted dll file and wouldnt compile.
I included all 6 fortran calculation libraries:
dverk.lib
lapack.lib
minpack1.lib
blas.lib
colsys.lib
libtiff.lib
and the powerstation .lib files that the calculation libraries are dependent on:
console.lib
libc.lib
libf.lib
portlib.lib
Unfortunately, I do not have the source code for the 6 calculation libraries.
Thanks!
Kevin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - proud2bhaole
I included all 6 fortran calculation libraries:
dverk.lib
lapack.lib
minpack1.lib
blas.lib
colsys.lib
libtiff.lib
dverk.lib
lapack.lib
minpack1.lib
blas.lib
colsys.lib
libtiff.lib
If you can build these from scratch, maybe you can avoid the dependencies on the Powerstation libraries.
David
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - David White
At least some of these libraries possibly have alternatives or available sources .. dverk is probably on netlib. lapack and blas at least are probably in the math library available with IVF. I'm not sure about the others.
If you can build these from scratch, maybe you can avoid the dependencies on the Powerstation libraries.
David
If you can build these from scratch, maybe you can avoid the dependencies on the Powerstation libraries.
David
David is right. It seems you're working with ODE. Check here. I'm not sure, though, the libtiff you need is that one for TIFF images.
A.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - David White
At least some of these libraries possibly have alternatives or available sources .. dverk is probably on netlib. lapack and blas at least are probably in the math library available with IVF. I'm not sure about the others.
If you can build these from scratch, maybe you can avoid the dependencies on the Powerstation libraries.
David
If you can build these from scratch, maybe you can avoid the dependencies on the Powerstation libraries.
David
- Colsys is on netlib (http://www.netlib.org/ode/colsys.f)
- Dverk is on netlib (http://www.netlib.org/ode/dverk.f)
- Not sure if this is the same minpack: http://www.netlib.org/minpack/
- Libtiff is at http://www.libtiff.org/
I think it's worth downloading those sources and investigating how to package/recompile them into .libs yourself, than to fiddle with those FPS4 binaries. And you get lots of extra speed as the bonus.

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