Acabo de descargar QGIS 2.0 y cada vez que lo abro Obtengo esta ventana de mensaje de error apareciendo:
¿Alguien sabe lo que esto significa o cómo podría ser capaz de solucionarlo? ¡Gracias!
Acabo de descargar QGIS 2.0 y cada vez que lo abro Obtengo esta ventana de mensaje de error apareciendo:
¿Alguien sabe lo que esto significa o cómo podría ser capaz de solucionarlo? ¡Gracias!
Me golpeó el mismo problema usando la V2.2.0 de QGis y se ha plagado de mí por un tiempo, así que comencé a investigar esto y averiguar de qué se trataba.
Antes de seguir adelante a pesar de que, quiero expresar que esta revisión podría no funcionar para usted parece que este es uno de esos errores, donde la base de razones para el problema son los mismos, pero cada caso tiene pequeños matices sutiles que son ligeramente diferentes.
En mi caso, empecé con el excelente MANERA posterior a que se hace referencia en la primera respuesta. Ser una pila completa de MS dev por el comercio, tuve un presentimiento de que se trataba de algún tipo de RTL conflicto con mscvrt en lugar de una de QGis problema (en parte, porque también he visto el mismo comportamiento en otras aplicaciones también)
Después de acercarse a la ruta problema como se describe en el otro post, y no obtener una resolución, empecé a explorar más el uso de process explorer, y esto me llevó por el camino de darse cuenta de que QGis fue, de hecho, tratando de cargar dos copias separadas de dos diferentes ubicaciones del archivo 'msvcr90.dll'
Después de darme cuenta de esto me mudé a la copia de msvcr90.dll que estaba en mi windows\system32 carpeta a una ubicación de copia de seguridad bien lejos de mi sistema principal de la unidad, y re-ran de QGis.
En este punto, luego me puse un error diferente, uno quejándose de que requiere un DLL que faltan.
Poner el archivo en la carpeta system32 y volver a intentarlo, arreglado esto, pero trajo de vuelta a la original C error de tiempo de ejecución.
Después de mover el msvcr90 dll de regreso a su lugar seguro, a continuación, he usado algunos de los SDK de windows/Desarrollador de herramientas para el seguimiento de la dependencia de la gráfica de carga de la DLL
Después de hacer esto, un poco más de hurgando en process explorer, me mostró que QGis también fue cargando msvcp100.dll' y 'msvcr100.dll' a partir de su propia carpeta, y que una o ambas de estas DLL había estática en las dependencias de la 'msvcr90.dll' archivo que estaba en mi carpeta system32.
Después de una rápida verificación para asegurarse de que yo tenía un estándar de todo el sistema de instalación de todos los 3 de DLL en el lugar correcto (El de windows de la carpeta winsxs) también he movido los 2 archivos de QGis bin a una ubicación de copia de seguridad.
Me despedido de QGis 2.0.2 copia de seguridad y hey presto, todo se puso en marcha y funciona sin ningún tipo de mensajes de error.
¿Por qué esto sólo se manifiesta principalmente en sistemas de 64 bits?
Bueno, tiene que ver con la forma en que windows maneja la capa de compatibilidad en una cáscara de nuez.
Ver "c:\windows\system32' es que NO se como sería llevan a creer que un sistema de 32 bits de la carpeta.
Para cualquier persona que recuerda mucho a la de windows días de gloria, cuando lo único que tenía que preocuparse era de windows 95/98, todo estaba de 32 bits y la vida era buena.
Luego, cuando más potentes máquinas de vino y empezamos a tener un SO de 64 bit es de las cosas comenzaron a ponerse un poco complicado.
32 bits "cosas" que fácilmente podría funcionar en 64 bits y sólo a la mitad el ancho de banda, pero de 64 bits "cosas", no podía correr en 32 bits sin doblar todo en un proceso llamado 'Procesador' (MS también cometió el mismo error cuando se va de 16 Bits Win 3.11 para Ganar 95 demasiado con el desventurado Win32S add-on pack - pero esa es una historia para otro momento)
En su infinita sabiduría y para mantener la Compatibilidad con software antiguo' , MS en lugar de hacer las cosas de una manera sensata y con un 'System64' carpeta, así como un "System32" carpeta decidido a hacer las cosas un poco hacia atrás.
En su lugar, lo que decidimos hacer fue poner TODOS los 64 bits componentes en una carpeta que se llama "system32", la razón detrás de esto era que los 32 bits de las aplicaciones que donde se portó mal y había rutas rígida, aún se ejecutan en un sistema de 64 bits, y cargar y usar un SO de 64 bit componentes sin realmente darse cuenta de ello.
Mientras tanto, todos los 32 bits cosas se ponen en una carpeta que se llama "SysWOW64", que fue redirigido de forma transparente por el orificio interno del núcleo de llamadas cuando un genuino bien comportado aplicación de 32 bits jurídicos OS llama solicitado un real de 32 bits, para servir a dicho real de 32 bits a partir de una colección de 32 bits de los archivos.
Esta redirección es conocido como el '64 Bits de Windows En Windows X32 Compatibilidad de Capa", de ahí el nombre de syswow64
Ahora todo esto es bueno, cuando funciona y no ser abusados.
Debido a este abuso (Que duró hasta la DLL hell años de Win XP) MS se acercó con un nuevo método mejorado cuando windows Vista fue lanzado llamado "Ventanas al Lado de la Compatibilidad de Capa" (el amor de su compatibilidad con las capas no se :-) )
Este vio la introducción de los "winsxs" carpeta , y la idea era simple
En esta carpeta se coloca un 'Enlace' (Sí señores, NTFS se puede hacer enlaces duros y suaves como. *nix), este Duro Enlace debe apuntar a que el DLL apropiada necesaria para el correcto funcionamiento del software en la plataforma.
En nuestro caso, el visual c++ runtimes ahora se instalan en una no la ruta de la carpeta y, a continuación, vinculado a la carpeta winsxs, windows, a continuación, de forma transparente se ve en la aplicación de llamar a la DLL, averigua si es de 32 o 64 bits y redirecciona la llamada a la DLL apropiado donde nunca puede ser instalado.
la carpeta winsxs (si tu lo suficientemente valiente para verlo) tienen una entrada para cada tiempo de ejecución y/o .neto de la asamblea en su PC para cada plataforma soportada por que el tiempo de ejecución, y para la gran parte funciona excepcionalmente bien la mayoría del tiempo.
Es decir, hasta que algún lunático aplicación de la que se codificados para buscar system32 va y cae un 32 bits en lo que cree que es el "sistema de 32 bits carpeta", que generalmente se overwritting la versión de 64 bits en el proceso, y luego hacer la winsxs enlace para ambas versiones de la plataforma de visual C++ runtime apuntan a una versión de 32 bits, en lugar de un 32/64 bits, dependiendo de lo que se ha pedido.
Si unimos esto con el hecho de que de nuevo a la compatibilidad de ayuda, camino de búsquedas SIEMPRE tienen prioridad sobre SysWOW & winsxs basado en llamadas, y luego tener que uno de dll en el lugar equivocado puede significar todo un mundo de dolor.
En el caso de msvcrt?? que en realidad se las arregla para 'Procesador' la versión de 32 bits en 64 bits de espacio de direcciones y seguir trabajando (por Eso de QGis en realidad no choque en el arranque), pero esto puede llevar a problemas posteriores (Tales como el azar de la aplicación se bloquea me estaba poniendo mientras se ejecuta) debido a la aplicación equivocadamente pensando que el tiempo de ejecución puede manejar un sistema de 64 bits.
Muchas otras aplicaciones, sin embargo, puede negarse a iniciar por completo dejando al usuario con bastante críptico, mensaje de error genérico que no en todos ayudar a solucionar el problema.
De todos modos, sé que es un poco de una novela en la que he escrito aquí, pero ya que todavía hay un montón de gente ahí fuera que se produzca este problema, es de esperar que su ahora armado con el conocimiento que usted necesita para solucionarlo.
sólo recuerde, esto no es para los débiles de corazón, su tontear con sistema operativo interna de aquí, así que ASEGÚRESE de que usted copias de seguridad antes de empezar a cambiar las cosas.
No puedo enfatizar esto lo suficiente, si usted comete un error hay una posibilidad de que usted puede hacer que su sistema no arranque. Es cierto que aún no he visto que esto suceda, esp cuando el DLL involucrados son sólo el C++ runtime library, pero el riesgo es todavía allí, si usted accidentalmente cambiar o mover los archivos DLL incorrecta.
Shawty la respuesta fue excelente y me ayudó a identificar mi problema. Process Explorer era el correcto alcance, y matando a algunos directorios de que mi camino era la bala mágica. (I. e. la eliminación de Intel ciet y de Intel OpenCL SDK de mi ruta de acceso del sistema). Por favor, véase también Michael Cooper respuesta y comentarios asociados y otras respuestas en la FORMA:
(Aunque el siguiente enlace está en la MANERA que las respuestas también...) Process Explorer fue una descarga gratuita en:
https://technet.microsoft.com/en-ca/sysinternals/bb896653.aspx
R6034 es un sucio, vago de error. Parece que es a menudo una falta/malo/conflicto msvcr90.dll (C++ archivo de tiempo de ejecución).
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.