msvcp110.dll, how do I get around it?

前端 未结 1 1744
天涯浪人
天涯浪人 2021-01-18 08:37

I have the following problem: I use Microsoft Visual Studio 2012 and it adds msvcp110.dll to my release. I\'ve read some posts here and there and I know that it\'s caused by

相关标签:
1条回答
  • 2021-01-18 09:07

    If you intend to keep your application dynamically-linked, your end-users need to install the Visual C++ Redistributable for Visual Studio 2012.

    This is the preferred way to deliver applications for the following reasons:

    1. Binary size - Your application binary will be smaller, because the library functions are not linked in.
    2. Security - The Microsoft redistributable DLLs can be updated by Windows Update. In the event that a vulnerability is found in one of their libraries, they can fix it, and all dynamically-linked programs are immediately no longer vulnerable.
    3. Memory footprint - If multiple processes are all using the same DLL, it only needs to be loaded into (read-only) memory once. All process share a copy of the DLL's text in memory, reducing the combined overall memory usage of the processes.

    Alternatively, you could statically link your executable. Do this by changing the build options for the program in Visual Studio.

    In Visual Studio 2010, this is under Configuration Properties > C/C++ > Code Generation > Runtime Library.

    enter image description here

    The default (/MD / /MDd) tell VS to link against their runtime DLL.

    To statically link, you want to change this to one of the non-DLL options (/MT / /MTd) Make sure to select the correct Debug/Non-Debug version (the little d in the switch).


    See also:

    • Static linking vs dynamic linking
    0 讨论(0)
提交回复
热议问题