Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error al compilar W64 proyecto W32 (https://www.clubdelphi.com/foros/showthread.php?t=91561)

jafera 04-03-2017 11:42:56

Error al compilar W64 proyecto W32
 
Buenos dias a todos.

Estoy haciendo pruebas con un proyecto para poder obtener el ejecutable en Windows 64 bits y me arroja el siguiente error:
[dcc64 Fatal Error] Carnaval_10.DPR(54): F2048 Bad unit format: 'Principal.dcu' - Expected version: 30.0, Windows Unicode(x64) Found version: 30.0, Windows Unicode(x86)

El proyecto lo estoy trabajando con Delphi 10 Seatle y solo con VCL, aun no he empezado con fmx y firedac, esto ya llegará.

Es un problema de falta de este recurso para x64?
Tengo que poner alguna ruta de busqueda que no está?

Si alguien ha pasado por lo mismo y lo ha solucionado

Muchas gracias por adelantado

Saludos

Josep

dec 04-03-2017 13:09:02

Hola,

Lo que ocurre es que para compilar el ejecutable para 64 bits no pueden usarse archivos DCU compilados para 32 bits y viceversa. La solución está en usar "Build" en lugar de "Compile", pues el primero recompila las unidades creando nuevos DCU para la plataforma de que se trate. No sé si existirá otra solución, pero, esta es la que yo he venido tomando. El único inconveniente es que lara hacer un "Build", posiblemente necesitemos permisos de administrador, puesto que de otro modo Delphi no podrá escribir en los directorios del sistema, donde pueden encontrarse (y de hecho se encuentran) las unidades de la VCL.

P.D. Pensando otra posible solución mejor que tener que hacer "Build" y acaso necesitar permisos de administrador (cosa no recomendable) tal vez lo que se puede hacer es determinar la ruta donde se compilan los archivos DCU. Esto se puede hacer, si no me equivoco, especificando una ruta distinta para cada plataforma, de modo que, al compilar se usarían los DCU de la plataforma en que se vaya a compilar. No obstante no sé hasta qué punto esta solución es válida para las unidades de la propia VCL y de posibles componentes de terceros. Tal vez algún compañero sepa decirnos una solución más elegante a este problema.


La franja horaria es GMT +2. Ahora son las 21:11:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi