代码之家  ›  专栏  ›  技术社区  ›  folibis

为Android构建Qt应用程序-移动失败

  •  2
  • folibis  · 技术社区  · 6 年前

    在为Android构建Qt/QML应用程序时,我遇到了一些奇怪的错误。 目前我有两种配置: -MinGW 5.3.0 32位 -安卓armeabi v7a(GCC 4.9)

    我可以毫无问题地编译/运行MinGW版本。 但当我编译Android版本时,我会遇到一些奇怪的错误。有趣的是,当编译好的lib被移动到DESTDIR文件夹时,就会发生错误。汇编本身顺利通过。

    详情如下:

    *.pro文件:

    QT += gui widgets
    TARGET = MyLib
    TEMPLATE = lib
    DESTDIR=$$PWD/../lib
    
    SOURCES += \    
       ...
    HEADERS += \
        ...
    

    在项目设置中 make 定义为'C:\Users。。。\AppData\Local\Android\Android-ndk-r17\prebuild\windows-x86\u 64\bin\make so在console中,我运行了以下程序:

    > C:\Users\...\AppData\Local\Android\android-ndk-r17\prebuilt\windows-x86_64\bin\make all
    

    编译通过了w/o问题,但仍然出现错误:

    move libMyLib.so  ..\..\MyProject\lib\
    process_begin: CreateProcess(NULL, move libMyLib.so "..\..\MyProject\lib ", ...) failed.
    make (e=2): The system cannot find the file specified.
    make: [..\..\MyProject\lib\libMyLib.so] Error 2 (ignored)
    

    脚本似乎无法将编译后的文件移动到目标文件夹。好的,我试过手动操作。在这里,我在同一个控制台窗口中:

    move libMyLib.so  ..\..\MyProject\lib\
            1 file(s) moved.
    

    令我惊讶的是,这个文件毫无问题地移动了! 但是为什么让脚本在同一个命令下失败呢??

    在里面 Makefile 其定义如下:

    MOVE          = move
    ...
    -$(MOVE) $(TARGET)  ..\..\MyProject\lib\ 
    

    所以看起来make使用的是相同的 move 就像我在控制台中使用的那样。

    我怎样才能避免这个错误?

    环境:

    • Windows 10 x64
    • Qt 5.10.1
    0 回复  |  直到 6 年前