digitalmars.D.learn - How static link dll msvcr120.dll?
- Marcone (1/1) May 26 2023 How can I static link msvcr120.dll using dmd?
- Marcone (4/5) May 28 2023 Please, could someone tell me if it is possible to link the
- novice2 (9/9) May 29 2023 you cannot "static link dll", "d" in "dll" is "dynamic".
- Marcone (3/13) Jun 01 2023 I linked msvcr120.lib, but the executable still ask for
- Mike Parker (11/13) Jun 01 2023 msvcr120.lib is a "link library", not a static library. On other
- novice2 (6/8) Jun 01 2023 i am sorry.
On Friday, 26 May 2023 at 12:29:15 UTC, Marcone wrote:How can I static link msvcr120.dll using dmd?Please, could someone tell me if it is possible to link the msvcr120.dll library to the program's executable using the dmd compiler? Because I would like my program to remain portable.
May 28 2023
you cannot "static link dll", "d" in "dll" is "dynamic". you can implicity or explicity load dll. https://learn.microsoft.com/en-us/cpp/build/linking-an-executable-to-a-dll?view=msvc-170 may be you mean static link msvcr120.lib? i am not windows guru, but you need msvcr120.lib (there is 2 version of .lib - one small for use .dll and contain only reference to code in dll, other large, for static linking, contains all code). to link mylib.lib you can use pragma(lib, "mylib.lib") in D code.
May 29 2023
On Tuesday, 30 May 2023 at 05:18:11 UTC, novice2 wrote:you cannot "static link dll", "d" in "dll" is "dynamic". you can implicity or explicity load dll. https://learn.microsoft.com/en-us/cpp/build/linking-an-executable-to-a-dll?view=msvc-170 may be you mean static link msvcr120.lib? i am not windows guru, but you need msvcr120.lib (there is 2 version of .lib - one small for use .dll and contain only reference to code in dll, other large, for static linking, contains all code). to link mylib.lib you can use pragma(lib, "mylib.lib") in D code.I linked msvcr120.lib, but the executable still ask for msvcr120.dll not found.
Jun 01 2023
On Thursday, 1 June 2023 at 15:05:40 UTC, Marcone wrote:I linked msvcr120.lib, but the executable still ask for msvcr120.dll not found.msvcr120.lib is a "link library", not a static library. On other systems, you pass shared libraries directly to the linker and it will pull the information it needs from there to set up the exectuable with what it needs for the system loader to load the shared library at runtime. Windows works differently. The compiler puts all that information in a link library when it creates the DLL, and you pass that to the linker instead of the DLL. Windows system libraries are not distributed as static libraries as far as I know.
Jun 01 2023
On Thursday, 1 June 2023 at 15:05:40 UTC, Marcone wrote:I linked msvcr120.lib, but the executable still ask for msvcr120.dll not found.i am sorry. my words was sourced from common sence, usual practice. it seems, msvcr120 is special case, and have only one version of .lib - for link to .dll i cant find static lib for msvcr120 :(
Jun 01 2023