如何为WinRT/ARM编译sqlite?

如何为WinRT/ARM编译sqlite?,sqlite,makefile,arm,windows-8,windows-runtime,Sqlite,Makefile,Arm,Windows 8,Windows Runtime,我已经成功编译了针对x86的SQLite的WinRT版本 然而,我仍然在为如何在ARM CPU上编译WinRT的dll而苦苦挣扎。我已使用Visual Studio ARM命令提示符运行nmake,但这只会导致以下错误: C:\sqlite>nmake -f makefile.msc sqlite3.dll FOR_WINRT=1 OPTS=/DWINAPI_FAMILY=WIN API_PARTITION_APP Microsoft (R) Program Maintenance

我已经成功编译了针对x86的SQLite的WinRT版本

然而,我仍然在为如何在ARM CPU上编译WinRT的dll而苦苦挣扎。我已使用Visual Studio ARM命令提示符运行nmake,但这只会导致以下错误:

 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.
我做错了什么

谢谢


阿德里安

我终于成功了:

  • 编译x86 dll,如下所述:

  • 只删除了sqlite3*文件和sqlitelib(非常感谢Banthar和Tim Heuer的提示)

  • 使用以下命令从ARM VS命令提示符编译ARM dll:


  • nmake-f makefile.msc sqlite3.dll FOR\u WINRT=1 OPTS=/DWINAPI\u FAMILY=WINAPI\u PARTITION\u APP

    您还可以通过此项目获得预编译的二进制文件:

    我要冒险一试,猜想SQLLite并没有隔离它的目标平台。这意味着有一些生成的x86二进制文件没有为ARM重新生成。您是否尝试过用x86生成的文件替换
    mkkeywordhash.exe
    ?然后,在不清理的情况下重建。是的,差不多就是这样。谢谢!:)如果你再加上一个答案,我会给你奖金。这有什么用?OPTS=/DWINAPI\u FAMILY=WIN API\u PARTITION\u APP