XE 2013 would build my project, but XE 2020 is generating the following error while linking:
error LNK2001: unresolved external symbol _printf libiode_ia32.lib(dodesol_mk52lfn.obj)
The project uses the Intel® Ordinary Differential Equation Solver Library embodied in libiode_ia32.lib. This related thread suggests adding #include <stdio.h> everywhere printf is called, but I obviously can't do that. How can this be fixed?
What is the right way to port a project from XE 2013 to XE 2020? I did it by merely copying the project folder from an old computer with visual studio 2010 & XE 2013 to a new one with visual studio 2019 and XE 2020, and then opened the .sln file in visual studio, and I'm playing wack-a-mole with multiple problems.
If _printf is being called, then this will require the appropriate C Runtime Library to be linked into your application. The reason that this function may be referenced is that you library libiode_ia32 likely was a C/C++ source that has a printf(....) somewhere.
The above illustrates some ways, however, you may get by with simply adding the appropriate library from MS VC:
Thanks for the reply.
With XE 2013 I didn't need to link in any C libraries. Why would I need to do that with XE 2020?
What is the right way to port a project from XE 2013 to XE 2020?
I wrote an answer to your problems with Intel ODE Solver, but by mistake I answered in another of your threads:
Perhaps a moderator can move that response to this thread and delete this mea-culpa note
I used this solution to get the Intel ODE Solver working -- I was doing a quick comparison to the NR in Fortran ODE.
Is there anyway to update the libary with the problem so we do not have to use the legacy code?
I do not have a VS 2010
The Intel ODE Solver is not a supported product.
Brian stated the solution in #4: add legacy_stdio_definitions.lib to the list of libraries for the linker to scan. You will not need VS10 if you follow that prescription.