各位路過的大神們,我在windows下用CMake交叉編譯Android Native靜態庫、動態庫時,報了如下錯誤:
CMAKE_SYSTEM_NAME is 'Android' but 'NVIDIA Nsight Tegra Visual Studio
Edition' is not installed.
我的Cmake命令以及引數如下:
cmake -DANDROID_NATIVE_API_LEVEL=16 \
-DCMAKE_SYSTEM_VERSION=21 \
-DCMAKE_TOOLCHAIN_FILE=E:/sdk/android-ndk-r13-windows-x86_64/android-cmake-master/android.toolchain.cmake \
-DANDROID_NDK=E:/sdk/android-ndk-r13-windows-x86_64/android-ndk-r13 \
-DCMAKE_BUILD_TYPE=Release \
-DANDROID_ABI="armeabi-v7a" \
-DANDROID_PLATFORM=android-21 \
-DANDROID_ARM_NEON=TRUE
cmake --build .
這個問題的搜編了整個網路,也看了Cmake官網,搞了好幾天了,一直找不到解決的辦法,所以來這尋求各位大神的幫助,大神們,這個問題我該怎么解決?求教。。。。。。
uj5u.com熱心網友回復:
百度搜相關關鍵字。uj5u.com熱心網友回復:
........................uj5u.com熱心網友回復:
我自己來回答吧.在windows上,如果沒有指定相應的"編譯器",那么就會默認使用VS,而VS編譯Android平臺下的庫,會用到一個NVIDIA Nsight Tegra Visual Studio Edition的東西,因為我沒有用過VS,我電腦上也沒有裝這個NVIDIA的東西,即使裝了,也還是會錯.細心的擼友會發現,AS下,google爹用的是Ninja,至于這個是什么?我只能告訴你我也不知道,反正google很叼.而ninja可以通過Android SDK manager下載CMake時下載到本地,配置好環境變數,就可以使用Ninja來編譯了.最后,交叉編譯的腳本:set toolchain=E:/Android/ndk/android-ndk-r13b-windows-x86_64/android-ndk-r13b/build/cmake/android.toolchain.cmake
set android_ndk=E:/Android/ndk/android-ndk-r13b-windows-x86_64/android-ndk-r13b
set build_type=Release
set gernerator="Ninja"
if not exist %1 md %1
cd %1
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=%toolchain% -DANDROID_NDK=%android_ndk% -DCMAKE_BUILD_TYPE=%build_type% -DANDROID_ABI="%1" -DCMAKE_GENERATOR=%gernerator%
ninja
%1是傳進來的引數,也就是對應架構的名字.等不忙了,我把我摸索的程序整理出來.
uj5u.com熱心網友回復:
如果也有遇到這個問題的擼友,可以[email protected]我一起討論更好的解決方案.uj5u.com熱心網友回復:
wsl 下/mnt/c/Windows/System32/cmd.exe /C cmake -DCMAKE_TOOLCHAIN_FILE=$LOCAL_CMAKE_TOOLCHAIN_FILE $CMAKE_OPTIONS -DCMAKE_GENERATOR="Unix Makefiles" -DCMAKE_MAKE_PROGRAM="make.exe" ..
windows cmd 下,可以不要前面 cmd.exe /C
需要將 NDK 目錄下的 make.exe 加入windows系統環境變數
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/245416.html
標籤:工具平臺和程序庫
下一篇:return后面可以是運算式嗎?
