[Paraview-developers] Linker error building Fortran90FullExample
thomasblome at startmail.com
thomasblome at startmail.com
Fri Nov 11 14:50:39 EST 2016
To resolve the references inclusion of header files
"CPythonAdaptorAPI.h" and "CAdaptorAPI.h" in FECxxAdaptor.cxx was
required, as they declare the missing functions.
Afterwards, I provided the corresponding procedure interfaces in the
Fortran files and finally got through the static linking stage.
Now, when I start the RUN_TESTS project, the Fortran90FullExampleTest
fails due to a segmentation fault:
1/1 Test #1: Fortran90FullExampleTest .........***Exception: SegFault
8.48 sec
1>
1> 0% tests passed, 1 tests failed out of 1
1>
1> Label Time Summary:
1> CATALYST = 8.48 sec (1 test)
1> PARAVIEW = 8.48 sec (1 test)
1>
1> Total Test time (real) = 8.48 sec
1>
1> The following tests FAILED:
1> 1 - Fortran90FullExampleTest (SEGFAULT)
1> Errors while running CTest
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: The command "setlocal
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: C:\cmake\bin\ctest.exe --force-new-ctest-process -C
Debug
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: if %errorlevel% neq 0 goto :cmEnd
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: :cmEnd
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto
:cmDone
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: :cmErrorLevel
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: exit /b %1
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: :cmDone
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: if %errorlevel% neq 0 goto :VCEnd
1>C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(133,5):
error MSB3073: :VCEnd" exited with code 8.
Does anybody know how to solve this?
Best,
Thomas
Am Donnerstag, 10. November 2016 19:10 schrieb
thomasblome at startmail.com:
> Hi Andy,
>
> The linker error concerning the missing main method was due to a
> wrong solution setup of the Fortran90FullExample in VS.
> The CMakeLists file provided generates only one single (C++) project
> in VS, which means all .f90 files will be ignored by the compiler
> (it's impossible to have a single Fortran/C++ mixed language project
> in VS).
> To solve this I had to configure the CMakeLists file to create a
> library from FECxxAdaptor.cxx and link it with the
> Fortran90FullExample.
>
> Other linker & compiler errors occurred with regards to mpi:
> 1) the target_link_libraries command in the CMakeLists file links
> ${MPI_Fortran_LIBRARIES} to the fortran project,
> but it forgets to link with msmpifec.lib (see also:
> http://public.kitware.com/pipermail/cmake/2016-February/062861.html).
> 2) The specification of an include directory (containing header
> mpifptr.h) was missing.
>
> Another problem arose when it comes to the the by hand name mangling
> for fortran in FECxxAdaptor.cxx.
> To get rid of that I introduced function interfaces in the
> FEFortranAdaptor.f90 file and now it works independently of the
> Fortran compiler used.
>
> Now, there are only five remaining linker errors as shown below:
>
> LNK2019: unresolved external symbol COPROCESS referenced in function
> TCP_mp_TESTCOPROCESSOR FEFortranAdaptor.obj
> LNK2019: unresolved external symbol COPROCESSORINITIALIZEWITHPYTHON
> referenced in function MAIN__ FEDriver.obj
> LNK2019: unresolved external symbol COPROCESSORFINALIZE referenced in
> function MAIN__ FEDriver.obj
> LNK2019: unresolved external symbol NEEDTOCREATEGRID referenced in
> function TCP_mp_TESTCOPROCESSOR FEFortranAdaptor.obj
> LNK2019: unresolved external symbol REQUESTDATADESCRIPTION referenced
> in function TCP_mp_TESTCOPROCESSOR FEFortranAdaptor.obj
>
> In the ParaViewCatalystUsersGuide_v2 the missing symbols appear to be
> declared in CAdaptorAPI.h and CPythonAdaptorAPI.h (but
> NEEDTOCREATEGRID),
> but I can't just include them in the Fortran code.
>
> Can you tell me how to resolve those missing references?
>
> Best,
> Thomas
>
>
> Am Mittwoch, 26. Oktober 2016 18:47 schrieb Andy Bauer
> <andy.bauer at kitware.com>:
>
>> Hi Thomas,
>>
>> I really don't know about this. Do you get the same behavior if you
>> don't link with Catalyst? Can you create a simple helloworld.f90
>> example that works?
>>
>> Best,
>> Andy
>>
>> On Wed, Oct 26, 2016 at 3:39 AM, <thomasblome at startmail.com> wrote:
>>> Hi Andy,
>>>
>>> I have changed both lines from coproc to main, but the error
>>> message remains the same.
>>>
>>> Best,
>>> Thomas
>>>
>>> Am Montag, 24. Oktober 2016 22:00 schrieb Andy Bauer <andy.bauer at kitware.com>:
>>>
>>>> Hi Thomas,
>>>>
>>>> If you change from coproc to main in the "program" and "end
>>>> program" lines in FEDriver.f90 does that fix the problem?
>>>>
>>>> I'm working on a fix for this but don't have access to any MSVS
>>>> compilers.
>>>>
>>>> Thanks,
>>>> Andy
>>>>
>>>> On Sat, Oct 22, 2016 at 1:46 PM, <thomasblome at startmail.com>
>>>> wrote:
>>>>> Hello,
>>>>>
>>>>> I'm trying to compile the Fortran90FullExample using MSVS (Intel
>>>>> Fortran Compiler 2017 and Visual C++ 2015 compiler).
>>>>> Doing so I'm getting following linker error:
>>>>>
>>>>> Error LNK2019 unresolved external symbol main referenced in
>>>>> function "int __cdecl __scrt_common_main_seh(void)"
>>>>> (?__scrt_common_main_seh@@YAHXZ) Fortran90FullExample.
>>>>>
>>>>> Obviously, the source code doesn't contain a main method at all,
>>>>> since the entry point is given by the fortran program in file
>>>>> 'FEDriver.f90'.
>>>>> Nevertheless, I guess the compiler internally creates a main
>>>>> method, and the linker cannot resolve the reference due to a name
>>>>> mangling problem, as there are different compilers involved. But
>>>>> I'm not quite sure about that, nor how to solve it, at that
>>>>> matter.
>>>>>
>>>>> Can you give me a hint how to solve that problem?
>>>>>
>>>>> Kind regards,
>>>>> Thomas
>>>>> _______________________________________________
>>>>> Powered by www.kitware.com <http://www.kitware.com>
>>>>>
>>>>> Visit other Kitware open-source projects at
>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>
>>>>> Search the list archives at:
>>>>> http://markmail.org/search/?q=Paraview-developers
>>>>>
>>>>> Follow this link to subscribe/unsubscribe:
>>>>> http://public.kitware.com/mailman/listinfo/paraview-developers
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20161111/c37bb496/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 7F53DEC77F67D0E0.asc
Type: application/pgp-keys
Size: 3082 bytes
Desc: OpenPGP public keys
URL: <http://public.kitware.com/pipermail/paraview-developers/attachments/20161111/c37bb496/attachment.key>
More information about the Paraview-developers
mailing list