首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tegra Nsight与Android NDK的定位

Tegra Nsight与Android NDK的定位
EN

Stack Overflow用户
提问于 2016-10-13 04:41:26
回答 1查看 389关注 0票数 0

我正在尝试构建一个Android本机活动应用程序,使用CMake生成Tegra项目。对于本机活动,我必须定位到android_native_app_glue.c/.h,它位于Android中一个可预测的位置(sources/android/本机_app_glue)。我的CMake Android工具链文件只定义了CMAKE_SYSTEM_NAMECMake文档版本,如CMake文档中所描述的。

但是,我没有看到任何CMake变量来定义使用Android的实际位置。根据的说法,在Android中构建时,定义了ANDROID_NDK CMake变量,但在从命令行调用CMake时并非如此。

我已经转储了所有的CMake变量,唯一包含我的CMAKE_CXX_COMPILERCMAKE_CXX_IMPLICIT_LINK_DIRECTORIES位置的变量。我可以解析其中的一个来确定ANDROID_NDK的位置--但是我想肯定有一个更简单的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-13 05:12:31

显然,用于实际编译的NDK是由Visual确定的。可以在属性中更改此操作。因此,在CMake生成时,无法可靠地确定实际的NDK。

但是,通过查看CMake源代码,它使用注册表来确定要编译的Nsight Tegra版本。存在一个注册表项HKLM\SOFTWARE\NVIDIA Corporation\Nsight Tegra\ndkRoot,它给出了与Nsight一起安装的NDK根的位置,可以在CMake中使用它来定位android_native_app_glue.c/.h文件:

代码语言:javascript
复制
get_filename_component(ANDROID_NDK "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Nsight Tegra\\;ndkRoot]" ABSOLUTE)
set(app_sources 
    "${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c"
    "${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.h"
...)

如果NDK根在属性中被重写,这些文件可能不是来自实际用于编译的NDK,但这似乎是一个合理的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40012431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档