5

he descargado y compilado una aplicación C++ de código abierto, Frhed.C++ ejecutable - msvcr100.dll no se encuentra el error

Cuando ejecuto la versión que yo he compilado, exige MSVCR100 y algunos otros archivos DLL (parte de Visual C++ Redistributable). Sin embargo, cuando ejecuto el ejecutable Frwn precompilado original, se ejecuta sin ningún paquete redistribuible de C++ instalado.

¿Tengo que modificar ninguna opción de compilación con el fin de desvincular el programa de bibliotecas se pueden distribuir el C++?

Respuesta

13

El programa original es probablemente enlazado estáticamente, mientras que usted está tratando de enlazar dinámicamente su ejecutable, lo que resulta en un archivo más pequeño, pero una dependencia de funciones dentro MSVCR100.dll (v10 del Microsoft C Runtime Library), lo que haría han sido incluidos dentro del ejecutable si estuvieras enlazando estáticamente.

Para vincular estáticamente las DLL, vaya a las propiedades de su proyecto y cambie el modo de compilación de MD a MT. En Visual Studio 2010/2012, la propiedad del proyecto es C/C++ -> Generación de código -> Biblioteca de tiempo de ejecución.

7

La respuesta corta es , la respuesta más larga es, bueno, más larga.

La biblioteca msvcr100.dll es la versión 10.0 (es decir, la versión de Visual Studio 2010) de la DLL implementation of the C run-time que probablemente solicitada mediante el uso de la opción de compilación/MD. Para evitar el uso de la versión enlazada dinámicamente del tiempo de ejecución, puede usar la opción/MT en su lugar y vincular estáticamente el tiempo de ejecución.

Como alternativa, puede redistribute msvcr100.dll (and other files) junto con su programa.

Cuestiones relacionadas