在为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
就像我在控制台中使用的那样。
我怎样才能避免这个错误?
环境: