Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29280 Discussions

Mixed Language (C Calls Fortran)

kulachi
Beginner
896 Views
I am creating a Mixed Language Solution with a Fortran Static LIB. I have done it a dozen times before, and to a significant degree of complexity, but after being away for a while, I am rusty.

I have created a Multiproject solution, added to it a static LIB fortran project, and then a C++ project. I have further done the following:

A. Made sure that VS2005 SP1 is installed (I am using Microsoft Visual Studio 2005)
B. Added Static LIB as Dependent of C/C++ project
C. In Tools > Options > Projects > VC++ Directories > Library Files, I added Intel Fortran LIB
D. Made sure that both projects use Multithreaded Debug DLL Libs

However, when I compile the solution, I get the following error:

1>------ Rebuild All started: Project: FTRN, Configuration: Debug Win32 ------
1>Deleting intermediate files and output files for project 'FTRN', configuration 'Debug|Win32'.
1>Compiling with Intel Fortran Compiler 10.1.021 [IA-32]...
1>Source1.F90
1>Creating library...
1>
1>Build log written to "file://C:\TCPIP_SRCL\Lib4\FTRN\Debug\BuildLog.htm"
1>FTRN - 0 error(s), 0 warning(s)
2>------ Rebuild All started: Project: Lib4, Configuration: Debug Win32 ------
2>Deleting intermediate and output files for project 'Lib4', configuration 'Debug|Win32'
2>Compiling...
2>CC.cpp
2>Compiling manifest to resources...
2>Linking...
2>CC.obj : error LNK2019: unresolved external symbol _Parser referenced in function _main
2>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

2>C:\TCPIP_SRCL\Lib4\Debug\Lib4.exe : fatal error LNK1120: 2 unresolved externals
2>Build log was saved at "file://c:\TCPIP_SRCL\Lib4\Lib4\Debug\BuildLog.htm"
2>Lib4 - 3 error(s), 0 warning(s)
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========


It looks like Fortran Static Lib is not being picked up by the executable project. I have opened up on of my old working mixed language projects, and cross-checked almost everything. I simply can't figure out what is the problem here.


-Kulachi
0 Kudos
1 Solution
Steven_L_Intel1
Employee
896 Views
Fortran created the name _FCODE. If you want it to be _Fcode add:

!DEC$ ATTRIBUTES DECORATE,ALIAS:"Fcode" :: Fcode

to the Fortran source. Ordinarily I might suggest BIND(C,NAME="Fcode") but you have not coded your Fortran to be compatible with that so let's skip it.

View solution in original post

0 Kudos
4 Replies
Steven_L_Intel1
Employee
895 Views
Look at the actual BuildLog.htm and examine the command line passed to LINK. Does it reference your library? I have sometimes seen where even adding the Fortran library as a dependent project doesn't cause the parent to link it in. I have never figured out a specific cause of this and it is rare enough that when I do encounter it I just add the library manually.

Of course, it's possible that the library is referenced and the symbols don't match.

Should the Fortran project resolve _WinMain@16?
0 Kudos
kulachi
Beginner
896 Views
Look at the actual BuildLog.htm and examine the command line passed to LINK. Does it reference your library? I have sometimes seen where even adding the Fortran library as a dependent project doesn't cause the parent to link it in. I have never figured out a specific cause of this and it is rare enough that when I do encounter it I just add the library manually.

Of course, it's possible that the library is referenced and the symbols don't match.

Should the Fortran project resolve _WinMain@16?


Much obliged Steve!

I spent another 3 hours but no success. Here is some more detail on this.

The source code:

C/C++:
------------------------------------------------------------
#include
#include

#ifdef __cplusplus
extern "C"
#endif

void FCode(char *STR_OUT, size_t STR_OUT_LEN);

int main(int argc, char *argv[]) {
char String[] = "Hello";

FCode(String, sizeof(String));
}
------------------------------------------------------------

Fortran:
------------------------------------------------------------
SUBROUTINE FCode (String)
IMPLICIT NONE

CHARACTER(*), INTENT(IN) :: String

WRITE(*,*) String

END SUBROUTINE FCode
------------------------------------------------------------

Now, I specifically added the LIB in C/C++Project > Properties > Additional Include Directories, and set C/C++Project > Properties > Linker > General > Show Progress to /VERBOSE. This gave me the following (rather lengthy) build log:

##############################################
1>------ Build started: Project: Lib1, Configuration: Debug Win32 ------
1>Compiling with Intel Fortran Compiler 10.1.021 [IA-32]...
1>Lib1.F90
1>Creating library...
1>
1>Build log written to "file://C:TCPIP_SRCLYetAnotherLib1DebugBuildLog.htm"
1>Lib1 - 0 error(s), 0 warning(s)
2>------ Build started: Project: YetAnother, Configuration: Debug Win32 ------
2>Compiling...
2>CC.cpp
2>Linking...
2>Starting pass 1
2>Processed /DEFAULTLIB:MSVCRTD
2>Processed /DEFAULTLIB:OLDNAMES
2>Searching libraries
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libkernel32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuser32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libgdi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libwinspool.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libcomdlg32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libadvapi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libshell32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libole32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Liboleaut32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuuid.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbc32.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbccp32.lib:
2> Searching ..lib1debuglib1.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibMSVCRTD.lib:
2> Found __imp__printf
2> Referenced in CC.obj
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___security_cookie
2> Referenced in CC.obj
2> Loaded MSVCRTD.lib(gs_cookie.obj)
2> Found @__security_check_cookie@4
2> Referenced in CC.obj
2> Loaded MSVCRTD.lib(secchk.obj)
2> Found @_RTC_CheckStackVars@8
2> Referenced in CC.obj
2> Loaded MSVCRTD.lib(stack.obj)
2> Found __RTC_Shutdown
2> Referenced in CC.obj
2> Loaded MSVCRTD.lib(init.obj)
2> Found _mainCRTStartup
2> Loaded MSVCRTD.lib(crtexe.obj)
2> Found __IMPORT_DESCRIPTOR_MSVCR80D
2> Referenced in MSVCRTD.lib(MSVCR80D.dll)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___report_gsfailure
2> Referenced in MSVCRTD.lib(secchk.obj)
2> Loaded MSVCRTD.lib(gs_report.obj)
2> Found "void __cdecl _RTC_Failure(void *,int)" (?_RTC_Failure@@YAXPAXH@Z)
2> Referenced in MSVCRTD.lib(stack.obj)
2> Loaded MSVCRTD.lib(error.obj)
2> Found __RTC_SetErrorFuncW
2> Referenced in MSVCRTD.lib(init.obj)
2> Loaded MSVCRTD.lib(userapi.obj)
2> Found __CRT_RTC_INITW
2> Referenced in MSVCRTD.lib(init.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __forceCRTManifest
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(crtmanifest.obj)
2> Found ___CxxSetUnhandledExceptionFilter
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(unhandld.obj)
2> Found __imp___configthreadlocale
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___globallocalestatus
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(xthdloc.obj)
2> Found __setdefaultprecision
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(fp8.obj)
2> Found __imp____setusermatherr
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __matherr
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(merr.obj)
2> Found __setargv
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(dllargv.obj)
2> Found __RTC_Initialize
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(initsect.obj)
2> Found __adjust_fdiv
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(adjustfd.obj)
2> Found __imp___adjust_fdiv
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __commode
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(xncommod.obj)
2> Found __imp____p__commode
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __fmode
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(xtxtmode.obj)
2> Found __imp____p__fmode
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___onexitbegin
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(atonexit.obj)
2> Found __imp___encode_pointer
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp____set_app_type
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __amsg_exit
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp____getmainargs
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __dowildcard
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(wildcard.obj)
2> Found __newmode
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(_newmode.obj)
2> Found ___security_init_cookie
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(gs_support.obj)
2> Found __imp___exit
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __XcptFilter
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp___cexit
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp__exit
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp____initenv
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp___CrtSetCheckCount
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __IsNonwritableInCurrentImage
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(pesect.obj)
2> Found __imp___CrtDbgReportW
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __initterm
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___xc_a
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(cinitexe.obj)
2>Processed /DEFAULTLIB:kernel32.lib
2> Processed /DISALLOWLIB:libc.lib
2> Processed /DISALLOWLIB:libcd.lib
2> Processed /DISALLOWLIB:libcmt.lib
2> Processed /DISALLOWLIB:libcmtd.lib
2> Processed /DISALLOWLIB:msvcrt.lib
2> Found __initterm_e
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___native_startup_state
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded MSVCRTD.lib(natstart.obj)
2> Found __except_handler4
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Referenced in MSVCRTD.lib(error.obj)
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Referenced in MSVCRTD.lib(pesect.obj)
2> Loaded MSVCRTD.lib(chandler4gs.obj)
2> Found __NULL_IMPORT_DESCRIPTOR
2> Referenced in MSVCRTD.lib(MSVCR80D.dll)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found MSVCR80D_NULL_THUNK_DATA
2> Referenced in MSVCRTD.lib(MSVCR80D.dll)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __crt_debugger_hook
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found "int __cdecl _RTC_GetSrcLine(unsigned char *,wchar_t *,unsigned long,int *,wchar_t *,unsigned long)" (?_RTC_GetSrcLine@@YAHPAEPA_WKPAH1K@Z)
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded MSVCRTD.lib(pdblkup.obj)
2> Found "void __cdecl terminate(void)" (?terminate@@YAXXZ)
2> Referenced in MSVCRTD.lib(unhandld.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __controlfp_s
2> Referenced in MSVCRTD.lib(fp8.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __invoke_watson
2> Referenced in MSVCRTD.lib(fp8.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __unlock
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found ___dllonexit
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __lock
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp___onexit
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __imp___decode_pointer
2> Referenced in MSVCRTD.lib(atonexit.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Found __except_handler4_common
2> Referenced in MSVCRTD.lib(chandler4gs.obj)
2> Loaded MSVCRTD.lib(MSVCR80D.dll)
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibOLDNAMES.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libkernel32.lib:
2> Found __imp__InterlockedExchange@8
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__Sleep@4
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__InterlockedCompareExchange@12
2> Referenced in MSVCRTD.lib(crtexe.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__TerminateProcess@8
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetCurrentProcess@0
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__UnhandledExceptionFilter@4
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__SetUnhandledExceptionFilter@4
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Referenced in MSVCRTD.lib(unhandld.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__IsDebuggerPresent@0
2> Referenced in MSVCRTD.lib(gs_report.obj)
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__RaiseException@16
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__DebugBreak@0
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__WideCharToMultiByte@32
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__MultiByteToWideChar@24
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__lstrlenA@4
2> Referenced in MSVCRTD.lib(error.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetProcAddress@8
2> Referenced in MSVCRTD.lib(error.obj)
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__LoadLibraryA@4
2> Referenced in MSVCRTD.lib(error.obj)
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__QueryPerformanceCounter@4
2> Referenced in MSVCRTD.lib(gs_support.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetTickCount@0
2> Referenced in MSVCRTD.lib(gs_support.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetCurrentThreadId@0
2> Referenced in MSVCRTD.lib(gs_support.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetCurrentProcessId@0
2> Referenced in MSVCRTD.lib(gs_support.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetSystemTimeAsFileTime@4
2> Referenced in MSVCRTD.lib(gs_support.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__HeapFree@12
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__HeapAlloc@12
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetProcessHeap@0
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__GetModuleFileNameW@12
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__VirtualQuery@12
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __imp__FreeLibrary@4
2> Referenced in MSVCRTD.lib(pdblkup.obj)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found __IMPORT_DESCRIPTOR_KERNEL32
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Found KERNEL32_NULL_THUNK_DATA
2> Referenced in kernel32.lib(KERNEL32.dll)
2> Loaded kernel32.lib(KERNEL32.dll)
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuser32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libgdi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libwinspool.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libcomdlg32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libadvapi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libshell32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libole32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Liboleaut32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuuid.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbc32.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbccp32.lib:
2> Searching ..lib1debuglib1.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibMSVCRTD.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibOLDNAMES.lib:
2>Finished searching libraries
2>Finished pass 1
2>Searching libraries
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libkernel32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuser32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libgdi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libwinspool.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libcomdlg32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libadvapi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libshell32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libole32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Liboleaut32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuuid.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbc32.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbccp32.lib:
2> Searching ..lib1debuglib1.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibMSVCRTD.lib:
2> Found __load_config_used
2> Loaded MSVCRTD.lib(loadcfg.obj)
2> Searching C:Program FilesMicrosoft Visual Studio 8VClibOLDNAMES.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libkernel32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuser32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libgdi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libwinspool.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libcomdlg32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libadvapi32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libshell32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libole32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Liboleaut32.lib:
2> Searching C:Program FilesMicrosoft Platform SDK for Windows XP SP2Libuuid.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbc32.lib:
2> Searching C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKlibodbccp32.lib:
2> Searching ..lib1debuglib1.lib:
2>Finished searching libraries
2>CC.obj : error LNK2019: unresolved external symbol _FCode referenced in function _main
2>C:TCPIP_SRCLYetAnotherDebugYetAnother.exe : fatal error LNK1120: 1 unresolved externals
2>Build log was saved at "file://c:TCPIP_SRCLYetAnotherYetAnotherDebugBuildLog.htm"
2>YetAnother - 2 error(s), 0 warning(s)
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

##############################################

Note that 2> Searching ..lib1debuglib1.lib: appears several times, but no Found word with it. Here is the Build Log for the C/C++ project:


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Build Log:

Build started: Project: YetAnother, Configuration: Debug|Win32
Command Lines Creating temporary file "c:TCPIP_SRCLYetAnotherYetAnotherDebugRSP00003747085136.rsp" with contents
[
/Od /I "C:TCPIP_SRCLYetAnotherLib1DebugLib1.lib" /D "_MBCS" /FD /EHsc /RTC1 /MDd /Fx /Fo"Debug" /Fd"Debugvc80.pdb" /W3 /c /Wp64 /TP .CC.cpp
]
Creating command line "cl.exe @c:TCPIP_SRCLYetAnotherYetAnotherDebugRSP00003747085136.rsp /nologo /errorReport:prompt"
Creating temporary file "c:TCPIP_SRCLYetAnotherYetAnotherDebugRSP00003847085136.rsp" with contents
[
/VERBOSE /OUT:"C:TCPIP_SRCLYetAnotherDebugYetAnother.exe" /INCREMENTAL:NO /LIBPATH:"C:TCPIP_SRCLYetAnotherLib1DebugLib1.lib" /MANIFEST /MANIFESTFILE:"DebugYetAnother.exe.intermediate.manifest" /DEBUG /PDB:"c:TCPIP_SRCLYetAnotherdebugYetAnother.pdb" /MACHINE:X86 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib "..lib1debuglib1.lib"

".DebugCC.obj"
]
Creating command line "link.exe @c:TCPIP_SRCLYetAnotherYetAnotherDebugRSP00003847085136.rsp /NOLOGO /ERRORREPORT:PROMPT"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Any ideas?

-Kulachi

0 Kudos
Steven_L_Intel1
Employee
897 Views
Fortran created the name _FCODE. If you want it to be _Fcode add:

!DEC$ ATTRIBUTES DECORATE,ALIAS:"Fcode" :: Fcode

to the Fortran source. Ordinarily I might suggest BIND(C,NAME="Fcode") but you have not coded your Fortran to be compatible with that so let's skip it.

0 Kudos
kulachi
Beginner
896 Views
Fortran created the name _FCODE. If you want it to be _Fcode add:

!DEC$ ATTRIBUTES DECORATE,ALIAS:"Fcode" :: Fcode

to the Fortran source. Ordinarily I might suggest BIND(C,NAME="Fcode") but you have not coded your Fortran to be compatible with that so let's skip it.


I love you Steve!
0 Kudos
Reply