Visual studio 2012 MSVCR dll falta

Iniciado por patilanz, 29 Mayo 2014, 07:54 AM

0 Miembros y 1 Visitante están viendo este tema.

patilanz

Me he descargado el dependecy walker y lo miro enseguida pero me surgio otro problema al asignar la biblioteca a /MT que me aparecieron un monton de externos sin resolver del archivo libcpmtd.lib. Antes lo estaba cambiando en un archivo que tenia solo la funcion main por probar pero cuando lo cambie en el chat que tengo hecho paso esto. Los includes son:

Código (cpp) [Seleccionar]
#include "stdafx.h"
#include <iostream>
#include <thread>
#include <Windows.h>

//No importante
#include "array_data.cpp"
#include "user.cpp"
#include "errors.cpp"
#include "msgs.cpp"
#include "msg.cpp"
#include "connection_msg.cpp"
//No importante

using namespace std;

#pragma comment(lib,"ws2_32.lib")


Lo de crear mi libreria como me dijiste lo voy a dejar y algún día creare la mia :D

Porque pasa lo anterior? |Gracias|

Eternal Idol

#11
Cada archivo fuente (.cpp) tiene que estar configurado con /MT, en cada configuracion (Debug y Release normalmente). Despues dale a Rebuild solution (Ctrl+Alt+F7).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

patilanz

Pero si desde la configuracion creo que lo hace a todos archivos, sigo esto:
http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx
En la parte de "To set this compiler option in the Visual Studio development environment" y sigo los pasos.

Como lo hago por separado en cada archivo?

Eternal Idol

Solution Explorer, boton derecho del mouse en cada archivo, Properties, C/C++, Code Generation y comproba que concuerden todos en Runtime Library.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

patilanz

Vale comprobé todo lo del explorador y todo estaba bien, los archivos cpp.
Probe creando un nuevo proyecto y copie todos los archivos y el código fuente de nuevo. Luego cambie el conjunto de herramientas de la plataforma a Visual Studio 2012 - Windows XP (v110_xp) y la biblioteca en tiempo de ejecutacion a MT. Comprobe los archivos todos estaban bien y al recompliar me sale otra ves lo de externos sin resolver.
Se me escapa algo?

x64core

Cita de: patilanz en 31 Mayo 2014, 00:43 AM
Vale comprobé todo lo del explorador y todo estaba bien, los archivos cpp.
Probe creando un nuevo proyecto y copie todos los archivos y el código fuente de nuevo. Luego cambie el conjunto de herramientas de la plataforma a Visual Studio 2012 - Windows XP (v110_xp) y la biblioteca en tiempo de ejecutacion a MT. Comprobe los archivos todos estaban bien y al recompliar me sale otra ves lo de externos sin resolver.
Se me escapa algo?
¿Cuales son los simbolos que te muestra? (libcpmtd.lib?) Pero luce como que alguien a estado jodiendo en la configuración por defecto.

patilanz

Si que he tocado cosas para experimentar pero no creo que he hecho algo.
Los errores son estos:

Eternal Idol

En Debug usa /MTd (en Release /MT).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

patilanz

Si esto era. Pero como te enteraste de que ahi estaba el problema. Los errores del compilador a mi por lo menos no me indican nada de que tiene que ser MT en release y MTd en debug.

De donde aprendiste tanto sobre visual studio?

Saludos

Eternal Idol

Por los simbolos de debug que no era capaz de resolver el enlazador (linker),  en la MSDN dice:


/MT Causes the application to use the multithread, static version of the run-time library. Defines _MT and causes the compiler to place the library name LIBCMT.lib into the .obj file so that the linker will use LIBCMT.lib to resolve external symbols.

/MTd Defines _DEBUG and _MT. This option also causes the compiler to place the library name LIBCMTD.lib into the .obj file so that the linker will use LIBCMTD.lib to resolve external symbols
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón