We have build many FORTRAN x32 DLL's utilizing VS2008 and Intel(R) Visual Fortran 11.1.038.
When we try "upgrade" to x64 we always get the following error when attempting to build:
Build Log Build started: Project: test, Configuration: x64|x64 Output Compiling with Intel(R) Visual Fortran 11.1.038 [Intel(R) 64]... ifort /nologo /iface:cvf /module:"x64\x64\\" /object:"x64\x64\\" /libs:static /threads /c /Qvc9 /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64""E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\UG_NUFORM_DLL.for" Compiling manifest to resources... rc.exe /fo "E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.dll.embed.manifest.res""E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.dll.embed.manifest.rc" Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 Copyright (C) Microsoft Corporation. All rights reserved. Linking... Link /OUT:"x64\x64\test.dll" /NOLOGO /MANIFEST /MANIFESTFILE:"E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.dll.intermediate.manifest" /IMPLIB:"E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.lib""x64\x64\UG_NUFORM_DLL.obj""E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.dll.embed.manifest.res" Link: executing 'link' Creating library E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.lib and object E:\AST_SOFT\Soft_dev\Solid\UniGr\UG_Nuform\test\x64\x64\test.exp libifcoremt.lib(for_main.obj) : error LNK2019: unresolved external symbol MAIN__ referenced in function main x64\x64\test.dll : fatal error LNK1120: 1 unresolved externals test - 2 error(s), 0 warning(s) The following is the simple subroutine that is the sole member of the project/DLL:
Subroutine UG_NUFORM_DLL [dllexport] (ArgsIn) !DEC$ ATTRIBUTES ALIAS:'UG_NUFORM_DLL' :: UG_NUFORM_DLL !DEC$ ATTRIBUTES STDCALL :: UG_NUFORM_DLL !DEC$ ATTRIBUTES REFERENCE :: ArgsIn C C (c) A. S. Thomas, Inc. 2006 C All rights reserved. C C ======================================================= C C The program translates UG file into C LEVEL I and LEVEL II outputs C C ======================================================= IMPLICIT NONE ! character*256 ArgsIn ! character*256 command_line common /cmd_line/command_line ! !=================================================================================== !==================================================================================== command_line=ArgsIn return C END
This test DLL builds when built using x86.. What is necessary to get a working DLL?