Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMAKE_前缀_路径不适用于Android_Android_Cmake - Fatal编程技术网

CMAKE_前缀_路径不适用于Android

CMAKE_前缀_路径不适用于Android,android,cmake,Android,Cmake,我已经从git为android编译了Qt5.15.2(仅适用于armeabi-v7a),现在我正在尝试为android编译我的Qt5应用程序。QtCreator以前编译到android的时候还不错,但因为这个原因停止了工作。所以我想从终端编译我的应用程序 以下是我的想法:- export QT_ROOT=/path/to/QT/installation 导出此=/home/kol/untitled/build 导出ANDROID_API=21 导出工具链=$ANDROID\u NDK/toolc

我已经从git为android编译了Qt5.15.2(仅适用于armeabi-v7a),现在我正在尝试为android编译我的Qt5应用程序。QtCreator以前编译到android的时候还不错,但因为这个原因停止了工作。所以我想从终端编译我的应用程序

以下是我的想法:-

export QT_ROOT=/path/to/QT/installation
导出此=/home/kol/untitled/build
导出ANDROID_API=21
导出工具链=$ANDROID\u NDK/toolchains/llvm/prebuild/linux-x86\u 64/bin/armv7a linux AndroidABI
导出CMAKE_前缀_路径=$QT_根/lib/CMAKE/Qt5
ls$CMAKE_前缀_路径
cmake-GNinja\
-DANDROID_SDK=$ANDROID_主页\
-DCMAKE_ANDROID_NDK=$ANDROID_NDK\
-DANDROID_NATIVE_API_LEVEL:STRING=$ANDROID_API\
-蒲公英ABI=armeabi-v7a\
-DANDROID\u STL=c++\u共享\
-DANDROID_工具链=叮当声\
-DCMAKE\u TOOLCHAIN\u文件:PATH=$ANDROID\u NDK/build/cmake/ANDROID.TOOLCHAIN.cmake\
-DCMAKE_CXX_编译器=$TOOLCHAIN$ANDROID_API-clang++\
-DCMAKE_C_编译器=$TOOLCHAIN$ANDROID_API-clang\
-DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH
-DCMAKE\u SYSTEM\u NAME=Android\
-DQT_QMAKE_可执行文件=$QT_ROOT/bin/QMAKE\
-DCMAKE\u BUILD\u TYPE=发布
这使我感到:-

Qt5Config.cmake  Qt5ConfigVersion.cmake  Qt5ModuleLocation.cmake
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /optHDD/AndroidNDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:27 (find_package):
  Could not find a package configuration file provided by "QT" with any of
  the following names:

    Qt6Config.cmake
    qt6-config.cmake
    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "QT" to CMAKE_PREFIX_PATH or set "QT_DIR" to
  a directory containing one of the above files.  If "QT" provides a separate
  development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "/home/smit/untitled/build/CMakeFiles/CMakeOutput.log".
You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
CMAKE_CXX_COMPILER= /optHDD/AndroidNDK/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++

-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    ANDROID_SDK


CMake Generate step failed.  Build files cannot be regenerated correctly.

ls命令清楚地显示了
Qt5Config.cmake
存在于给定的
cmake\u PREFIX\u路径中,但cmake仍然找不到它。

cmake\u PREFIX\u路径
用于安装前缀,在您的例子中是
QT\u ROOT
。注意,在交叉编译的情况下,工具链可能要求安装前缀位于sysroot之下。如果要使用
Qt5Config.cmake
文件指定目录,请设置
QT_DIR
变量,如错误消息所示,此变量不受交叉编译的影响。