2012-06-24 13 views
9

He compilado satisfactoriamente mi versión WinRT de SQLite para x86 as described by Tim Heuer.¿Cómo puedo compilar sqlite para WinRT/ARM?

Sin embargo, todavía estoy luchando por compilar el dll para WinRT en CPUs ARM. Me he encontrado nmake con el símbolo de Visual Studio ARM, pero eso sólo me da el siguiente error:

C:\sqlite>nmake -f makefile.msc sqlite3.dll FOR_WINRT=1 OPTS=/DWINAPI_FAMILY=WIN 
API_PARTITION_APP 


Microsoft (R) Program Maintenance Utility Version 11.00.50522.1 
Copyright (C) Microsoft Corporation. All rights reserved. 

     cl.exe -W3 -DNDEBUG -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS 
-O2 -Zi /DEBUG -Femkkeywordhash.exe -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_RTR 
EE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_MAX_TRIGGER_DEPTH=100 /DWINAPI_F 
AMILY=WINAPI_PARTITION_APP .\tool\mkkeywordhash.c 
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50522.1 for ARM 

Copyright (C) Microsoft Corporation. All rights reserved. 

mkkeywordhash.c 

Microsoft (R) Incremental Linker Version 11.00.50522.1 
Copyright (C) Microsoft Corporation. All rights reserved. 

/machine:arm 
/debug 
/out:mkkeywordhash.exe 
mkkeywordhash.obj 
     .\mkkeywordhash.exe > keywordhash.h 
This version of C:\sqlite\mkkeywordhash.exe is not compatible with the version o 
f Windows you're running. Check your computer's system information and then cont 
act the software publisher. 
NMAKE : fatal error U1077: '.\mkkeywordhash.exe' : return code '0x1' 
Stop. 

¿Qué estoy haciendo mal?

Gracias,

Adrian

+0

Voy a salir de una extremidad y supongo que SQLLite no aísla sus plataformas de destino. Eso significa que se crearon algunos binarios x86 que no se reconstruyeron para ARM. –

+0

¿Ha intentado reemplazar 'mkkeywordhash.exe' con el de x86 build? Luego, reconstruye sin limpiar. –

+0

yup, eso fue más o menos. ¡Gracias! :) Si agrega una respuesta, le otorgaré la recompensa. –

Respuesta

9

que finalmente lograron hacer este trabajo:

  1. compiló el DLL x 86 como se describe aquí: http://timheuer.com/blog/archive/2012/05/20/using-sqlite-in-metro-style-app.aspx

  2. elimina sólo el sqlite3 * archivos y el sqlitelib (muchas gracias a Banthar y Tim Heuer por la pista)

  3. compiló el DLL ARM de la ARM VS símbolo del sistema con este comando:

nmake -f makefile.msc sqlite3.dll FOR_WINRT = 1 OPTS =/= DWINAPI_FAMILY WINAPI_PARTITION_APP

+0

¿Qué hace esto? OPTS =/DWINAPI_FAMILY = WIN API_PARTITION_APP – tofutim

+1

¡ahh, lo necesito! ;) – tofutim

Cuestiones relacionadas